1. 程式人生 > >【Docker】如何修復無法啟動的容器

【Docker】如何修復無法啟動的容器

先說說這個問題的起因: Docker容器後臺執行,就必須有一個前臺程序! OK,有次手賤,把容器內的php-fpm配置檔案中的daemon改為yes,導致了沒有前臺程序,因此,容器啟動後就停止了。 那麼問題變成,如何修改沒有啟動的容器內的檔案?(PS:正常情況下可以通過 docker exec命令開啟容器的一個shell終端進去修改) 解決方案:建立新映象 把這個問題容器用docker commit提交到一個新的映象,然後用docker run -it 基於新映象執行一個新的容器進去改變(修復)配置檔案。 再通過新的容器再提交一個新的映象,然後在基於新的映象重新啟動容器(同最初的容器)。 這個方法是可行的,但問題是步驟多,而且提交了新的映象,對於後續維護增加了複雜性。 #把要修復的容器提交為映象 docker commit <container_id> <image_name>:<tag> docker rm <container_id> #這個刪除老的容器,反正也用不了 #檢視剛建立的新映象 REPOSITORY                               TAG                 IMAGE ID            CREATED             SIZE zhibin/php5                              2018                c6532c5ece91        10 minutes ago      1.549 GB #利用這個新映象建立容器,進入容器,修復配置檔案 docker run -it --name tmp-fixphp5 zhibin/php5:2018 /bin/bash #重新提交映象 docker commit <container_id> <image_name>:<tag>
#建立修復後的容器 docker run -d --volumes-from nginx_server --name php-fpm_server_2018 --dns=10.100.17.21 --cap-add SYS_PTRACE -p 9000:9000 zhibin/php5:201802