方法一:
把docker容器中的配置文件复制到主机中,然后在主机中修改,修改完成后再复制到docker容器中 1. 复制docker容器的文件到主机中
docker cp [容器id]:docker容器中配置文件路径 主机路径 docker cp mysql:/etc/mysql/my.cnf /home/my.cnf
复制
2. 修改配置文件中出错的部分
3. 配置文件到docker容器中
docker cp 主机文件路径 容器id:docker容器中配置文件路径 docker cp /home/my.cnf mysql:/etc/mysql/my.cnf
复制
4. 重启容器
方法二:
运行命令 docker inspect [CONTAINER ID] ,可以找到如下的内容
看到MergedDir:
cd到 MergedDir , 你会惊奇的发现,他和我们容器里的目录结构是一样的.
直接在宿主机使用 cd命令进入即可
例如:
[root@localhost config]# cd /var/lib/docker/overlay2/0c3984f51e45c7c6d3cf12ff962ebea16692a69c6a7d17f6eec41faff084a9fb/merged
[root@localhost merged]# ls
bin boot dev etc home kafka lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@localhost merged]#
如果提示没有此目录,可能merged文件夹没有,有的容器的结构不一样,所以我们只进入一下路径看一看
/var/lib/docker/overlay2/0c3984f51e45c7c6d3cf12ff962ebea16692a69c6a7d17f6eec41faff084a9fb
然后可以在当前路径下看到几个目录,都进入看看测试一下,有次我进入的文件夹是diff,而不是merged
这样我们就可以在前者中,也就是在容器已经 "exit" 的情况下,修改容器中的配置文件, 修改完成后重启容器.