2016-11-11 137 views
2

我使用下面的命令來啓動搬運工容器在重新啓動

# docker run --restart=always -d -p 80:80 image_name 

多克降的變化,這意味着,如果它退出泊塢窗守護進程將重新啓動的過程,但它似乎在容器中所做的更改將在重新啓動後保留。有什麼方法可以讓docker守護進程在進程重啓時刪除所有更改嗎?我的意思是我希望docker守護進程從映像啓動一個新的容器,而不是僅重新啓動進程。

+1

將'-rm'標誌添加到您的命令中。一旦停止,這將移除容器。 –

+0

@JonStirling你爲什麼不發表這個評論作爲答案? – jannis

+0

@jannis好問題;) –

回答

1

Docker Engine API沒有辦法。

最好的辦法是使用--restart = no(默認)參數運行容器並使用外部進程監視器。例如,如果您有基於RHEL的操作系統,則可以使用systemd單元文件。然後,您將控制您的容器作爲服務。

我經常這樣做:

[Unit] 
Description=My Service 
Requires=docker.service 

[Service] 
ExecStartPre=/usr/bin/docker create -d --name=container_name image_name 
ExecStart=/usr/bin/docker start container_name 
ExecStop=/usr/bin/docker stop container_name 
ExecStopPost=/usr/bin/docker rm container_name 

[Install] 
WantedBy=multi-user.target 

您還可以使用泊塢窗,撰寫具有自動娛樂選擇。