linux编辑docker的内部文件,当 Docker 容器无法正常启动时如何修改配置文件?

当Docker容器因配置错误无法启动时,可以通过两种方式修改配置文件。一是直接在/var/lib/docker/overlay/目录下找到并修改对应配置文件;二是使用docker cp命令将配置文件复制到主机,修改后再放回容器内。例如,通过日志发现错误变量'realy-log'导致MySQL容器启动失败,修正配置文件后重启容器即可解决问题。
摘要由CSDN通过智能技术生成

在容器无法正常启动的情况下,如何修改其配置文件?

问题描述:因为错误的配置文件导致容器运行异常,无法正常启动,通常情况下只有进入容器才能修改配置文件,所以在不能进入容器的情况下该怎么办呢?

这种情况下,有两种方式去修改:Docker 容器的配置文件一般在 /var/lib/docker/overlay/目录下,可以找到该目录下对应的配置文件进行修改。

把容器中的配置文件复制到主机中,修改完之后,再移动到容器中。

方式一查询日志docker logs

ERROR: mysqld failed while attempting to check config

command was: "mysqld --verbose --help"

2020-09-03T12:15:54.644699Z 0 [ERROR] unknown variable 'realy-log=slave-relay-bin'

2020-09-03T12:15:54.650119Z 0 [ERROR] Aborting

由于异常日志可以得知是因为我将relay-log 写成了 realy 导致容器无法正常启动。查找文件$ find / -name mysqld.cnf

/var/lib/docker/overlay2/02e1644bc1a4dc1adc9a0300e1815f364416570d69b715fb3b7de0a06cf0c495/diff/etc/mysql/mysql.conf.d/mysqld.cnf

/var/lib/docker/overlay2/02e1644bc1a4dc1adc9a0300e1815f364416570d69b715fb3b7de0a06cf0c495/merged/etc/mysql/mysql.conf.d/mysqld.cnf

/var/lib/docker/overlay2/4f128d7fb1200f722b0d2cfe3606149fe72987a7a16bc78551a2b1fe6c6c6572/diff/etc/mysql/mysql.conf.d/mysqld.cnf

/var/lib/docker/overlay2/a68f1af4adf982b037f1bd37d61082fde1fa2b0e26ea0e2fe146edcb69b198ea/diff/etc/mysql/mysql.conf.d/mysqld.cnf

这里可能会出现多个配置文件,这是因为每一次重启Mysql 容器都会保留一个配置文件,所以理论上,直接修改第一个配置文件,就是当前Mysql 所使用的配置文件。修改配置文件

重启容器即可。

方式二

如果第一种方式没生效,那可以尝试第二种方式。复制容器中的配置文件到主机:# 语法:docker cp :

$ docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf ~/mysqld.cnf修改主机中的配置文件

将该配置文件mv 到容器中:# 语法:docker cp :

$ docker cp ~/mysqld.cnf mysql:/etc/mysql/mysql.conf.d/mysqld.cnf重启配置文件即可。

总结:两种方式均可以有效解决上述问题,当然这类方式仅适用于容器是因错误的配置文件导致无法正常启动的情况。

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值