Docker
用於定期任務時保持 docker 容器啟動的正確方法
我有安裝和配置軟體的 docker 容器。
沒有任何程序應該一直啟動/執行。
我想要什麼 - 它能夠根據外部事件啟動一些命令。像:
docker exec mysupercont /path/to/mycommand -bla -for
和
docker exec mysupercont /path/to/myothercommand
但是當容器停止時“exec”是不可能的,而且這個容器裡面有一些“工作”數據,用於該命令,所以我不能使用
docker run ...
每次,因為它從圖像重新創建容器並銷毀我的數據。
保持此類容器執行的“正確”和“最佳”方式是什麼?我可以在裡面啟動哪個命令?
你不需要每次都執行
docker run
。
docker run
實際上是兩個命令的序列:“create”和“start”。執行容器時,必須指定“
-it
”:-i, –interactive=false 即使沒有附加,也保持 STDIN 打開
-t, –tty=false 分配一個偽 TTY
例子:
docker run -it debian:stable bash
工作完成後在啟動時指定的命令(在我的範例 bash 中)。例如,您執行“退出”。集裝箱停靠點:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1329c99a831b debian:stable "bash" 51 seconds ago Exited (0) 1 seconds ago goofy_bardeen
現在你可以重新開始
docker start 1329c99a831b
容器啟動並再次執行命令“bash”。
使用命令連接到此會話“bash”
docker attach 1329c99a831b
總結一下
run
:你要了解容器和start
容器的區別。此外,請查看“執行”參數“ ”和“ ”的作用的文件
-i t``-d