Docker修改無法啓動的容器的配置文件

  • 問題
    修改了docker容器中的配置信息,由於配置文件寫錯,或者配置文件格式錯誤等原因,導致容器無法再次啓動

  • 方法一
    docker容器的一些配置信息一般在var/lib/docker/overlay下面,我們到此目錄找到對應的配置,修改後即可重新啓動

1、查詢日誌

docker logs 容器id
ERROR: mysqld failed while attempting to check config
command was: "mysqld --verbose --help"

2019-03-04T03:44:11.272395Z 0 [ERROR] unknown variable 'character-set-client-hanshake=FALSE'
2019-03-04T03:44:11.276057Z 0 [ERROR] Aborting

由錯誤可知我在配置文件配置了錯誤的參數 character-set-client-hanshake
該參數是我配置在mysql容器配置文件 mysqld.cnf中的,所以我們要找到該配置文件,然後將 character-set-client-hanshake刪除

2、查找文件

[root@izm5ei5fe43tp24hiim2d0z ~]# find / -name mysqld.cnf
/var/lib/docker/overlay2/6aa46a19c936683be353bf01b3a4cb8298cdf93f53b5e4452b83d1419bb8130f/diff/etc/mysql/mysql.conf.d/mysqld.cnf

注: 你可能會找到多個配置文件,比如你啓動了多個mysql容器就會出現多個mysqld.cnf,找到對應你當前錯誤的mysqld.cnf然後修改重啓。

3、修改配置文件,重啓

  • 方法二
    把docker容器中的配置文件複製到主機中,然後再主機中修改,修改完成後再複製到docker容器中
    1、複製docker容器的文件到主機中
docker cp 容器id:docker容器中配置文件路徑  主機路徑
docker cp eaaba6bd4423:/etc/mysql/mysql.conf.d/mysqld.cnf /root/mysqld.cnf  

2、修改配置文件中出錯的部分
3、配置文件到docker容器中

docker cp 主機文件路徑 容器id:docker容器中配置文件路徑
docker cp /root/mysqld.cnf eaaba6bd4423:/etc/mysql/mysql.conf.d/mysqld.cnf   

4、重啓容器

  • 總結
    兩種方法均可以解決容器在無法啓動的情況下,修改容器中的配置文件。我比較喜歡使用第二種方法,主要知道是哪個配置文件即可複製到主機中,自由修改。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章