1. 程式人生 > >如何修改容器的一些引數

如何修改容器的一些引數

    前段時間運維向我反饋了一個需求,他們在啟動容器的時候使用了--restartalways 啟動了容器(就是把容器的啟動捆綁了docker引擎的啟動),但是他們現在想修改成不關聯啟動。我當時楞了一下,當時沒有想到如何去解決這個問題。

     之後我想了一下,我們的image或container都是利用聯合檔案系統去關聯的。引擎都是通過它們的文件解析和配置它們的。然後,這裡我就利用了 docker ps --no-trunc 命令去檢視容器的全ID。然後,依據裡面檔案儲存的路徑:

/var/lib/docker/container/容器ID,在下面我遍歷裡面的所有檔案,終於在目錄下的hostconfig.json

發現了一個有趣的引數"RestartPolicy":{"Name":"always","MaximumRetryCount":0},這個不就是我們配置的引數嗎?我的第一感覺這樣的。我就修改了這個引數修改成了no。然後我迫不及待的用 service docker restart 命令重啟了我的docker引擎。但是悲催的事情發生,那個容器還是頑強的起來了,我不死心,又到那個檔案裡查看了一下,發現剛修改的那個引數有變成了alawys,我當時就不樂意了。這個東東還有其他儲存預設的地方覆蓋了我的修改嗎?

    當我準備想放棄的時候,突然我醒悟了一下。是不是,我修改引數的時候沒有關掉docker引擎導致配置寫不進去呢?但是,我就使用 service docker stop 命令先關掉docker的引擎。然後修改剛才的引數重啟後。我沒有使用 docker ps 去檢視執行中的容器,直接有查看了剛才的那個引數的值,binggo,變成了no。當時,我心裡大定,著一定OK了。果不其然,當我使用docker ps 命令去檢視的是,終於沒有看到我剛才修改的容器了,當我在用docker ps -a 檢視所有的容器的時候,發現那個容器靜靜的躺在列表中。這個問題圓滿解決。