修改无法启动的docker容器的配置
问题描述mysql在运行过程中报错,进入mysql容器修改配置文件时,单词拼错,导致mysql容器无法重新启动.解决思路由于docker无法进入已经停止的容器,所以只能曲线救国.先提交无法进入的docker容器使用临时终端启动新的镜像并修改相应文件,再次提交改容器将无法启动的docker容器中的内容复制出来使用新的镜像启动容器并挂载文件内容解决步骤提交已经死亡的mysql容器docker
·
问题描述
mysql在运行过程中报错,进入mysql容器修改配置文件时,单词拼错,导致mysql容器无法重新启动.
解决思路
由于docker无法进入已经停止的容器,所以只能曲线救国.
- 先提交无法进入的docker容器
- 使用临时终端启动新的镜像并修改相应文件,再次提交改容器
- 将无法启动的docker容器中的内容复制出来
- 使用新的镜像启动容器并挂载文件内容
解决步骤
提交已经死亡的mysql容器
docker commit mysql-old sunshineasbefore/mysql
启动临时终端并修改出错的配置文件
docker run -it --name mysql-modify sunshineasbefore/mysql /bin/bash
vim /etc/mysql/my.cnf
复制原有mysql数据库
cp -r /data/docker/volumes/925bca0a69b6bffc06933db5578dcadda2efa3d7cee7c5642d7734e001293353 /_data /xxx/xxx
提交修改后的mysql容器
docker commit mysql-modify sunshineasbefore/mysql
重新启动新的mysql容器并挂载原有mysql数据库
docker run -d -p 3306:3306 --name mysql-new -v /xxx/xxx/_data/:/var/lib/mysql sunshineasbefore/mysql mysqld
这个地方需要注意:
因为在第二个步骤启动临时终端时使用了/bin/bash
命令覆盖了mysql镜像中的mysqld
命令,如果这一步不使用mysqld
命令覆盖回来的话,则不会启动成功.
总结
- 话说在使用docker的过程中,直接进入容器修改配置文件,出错了好像真没有什么办法能够回复.只能在使用过程中注意了…
- 话说在使用docker的过程中,还是要把配置文件挂载出来的好…
- 原文地址: 修改无法启动的docker容器的配置
更多推荐
已为社区贡献1条内容
所有评论(0)