Docker 容器中部署项目后一直重启原因排查

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 容器中部署项目后一直重启原因排查相关的知识,希望对你有一定的参考价值。

参考技术A docker部署的的项目,在jekins上启动后显示启动成功,但是服务始终发现不了,也无法使用,怀疑项目没有真正启动成功。于是使用 docker ps 命令 查看,如下图

容器已经存在,但是在不停的重启之中,怀疑是不是内存不足的原因,使用 docker inspect --formate container-name 命令 查看详情情况:

这里报错的内容是我配置文件的一处地方,于是查看,定位到时yml配置风格有一个空格导致没有对齐,文件读取错误,修改后正常启动,访问正常,收获的教训就是,改动任何一个地方都要仔细检查,一个小空格也会耽误大量的时间

《Docker系列》Docker容器修改配置文件后,重启失败,如何修改配置并启动容器?

Docker容器修改配置文件后,重启失败,如何修改配置并启动容器?

docker部署的MySQL容器,修改了my.cnf配置文件,重启的时候导致无法启动

通过查日志发现,配置文件中的binlog-db-db=hw写错了,应该是binlog-do-db=hw

这时候需要修改配置文件,才能启动,但是呢?容器又启动不了

这种情况可以通过两种方式处理

[root@zxy_master mysql03]# docker logs e1aa5d676710
2023-03-03 08:27:23+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.40-1.el7 started.
2023-03-03 08:27:23+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.uebX7jnPYr
        2023-03-03T08:27:23.657000Z 0 [ERROR] unknown variable 'binlog-db-db=hw'
2023-03-03T08:27:23.660333Z 0 [ERROR] Aborting
2023-03-03 08:27:52+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.40-1.el7 started.
2023-03-03 08:27:52+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.HmpBPq7emF
        2023-03-03T08:27:52.311118Z 0 [ERROR] unknown variable 'binlog-db-db=hw'
2023-03-03T08:27:52.314845Z 0 [ERROR] Aborting

方式一:查找跟docker容器映射的本地文件

docker inspect [容器ID]

查看容器详情时,主要关注Mounts处,可以查看到跟容器映射的本地文件,修改后即可成功启动。

我采用的是第二种方法,所以对方式一不做太多说明,可以自行尝试。

"Mounts": [
            
                "Type": "bind",
                "Source": "/zxy/apps/docker_mysql/mysql03/log",
                "Destination": "/var/log/mysql",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            ,
            
                "Type": "bind",
                "Source": "/zxy/apps/docker_mysql/mysql03/data",
                "Destination": "/var/lib/mysql",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            ,
            
                "Type": "bind",
                "Source": "/zxy/apps/docker_mysql/mysql03/conf",
                "Destination": "/etc/mysql/conf.d",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            
        ],

方式二:拷贝容器文件到本地,修改后再上传

# 1.复制容器文件到本地
[root@zxy_master data]# docker cp e1aa5d676710:/etc/my.cnf ./
# 2.修改错误项
[root@zxy_master data]# vim my.cnf
# 3.复制修改后文件到容器
[root@zxy_master data]# docker cp ./my.cnf e1aa5d676710:/etc/my.cnf
# 4.重启成功
[root@zxy_master data]# docker start e1aa5d676710
e1aa5d676710

以上是关于Docker 容器中部署项目后一直重启原因排查的主要内容,如果未能解决你的问题,请参考以下文章

flannel 网络问题排查

Docker部署Docker-compose部署redis容器及启动失败挂载失败等问题

Docker部署Docker-compose部署redis容器及启动失败挂载失败等问题

Docker部署Docker-compose部署redis容器及启动失败挂载失败等问题

通过Docker部署Odoo14

docker-index.exe内存占用大