Docker docker create|start|attach|restart|stop用法
摘要1:https://blog.csdn.net/taiyangdao/article/details/72669201
摘要2:https://blog.csdn.net/jiameng15/article/details/82840355
摘要3:https://blog.csdn.net/zhangzehai2234/article/details/102791175
摘要4:https://www.runoob.com/docker/docker-attach-command.html
摘要5:https://www.cnblogs.com/guoxiangyue/p/12572703.html
dockers create
docker create命令能夠基於映象建立容器。
該命令執行的效果類似於docker run -d,即建立一個將在系統後臺執行的容器。
但是與docker run -d不同的是,docker create建立的容器並未實際啟動,還需要執行docker start命令或docker run命令以啟動容器。
事實上,docker create命令常用於在啟動容器之前進行必要的設定。
# 使用docker映象nginx:latest建立一個容器,並將容器命名為mynginx
docker create --name mynginx nginx:latest
docker start
啟動一個或多個已經停止的容器
#可以根據容器的Name或者ID啟動容器
$ docker start ID/NAME
Options:
# -a 引數 在前臺執行容器並輸出日誌
-a, --attach Attach STDOUT/STDERR and forward signals
# 引數 不懂...
--detach-keys string Override the key sequence for detaching a container
# -i 引數 啟動容器並進入互動模式
-i, --interactive Attach container's STDIN
# 啟動一個容器名為nginx-1的容器
docker start nginx-1
# 啟動兩個容器,分別為容器名為nginx-1、容器ID為356466a99c7f的兩個容器
docker start nginx-1 356466a99c7f
docker attach
attach命令把一個後臺執行的容器搞到前臺來,這樣你就可以看到他們的輸出,並且使用輸入了。
- –no-stdin
關閉輸入,這樣你就不能使用輸入了 - –sig-proxy
訊號轉發,預設開啟,這樣DMD程序就可以收到你的訊號了。
注意
(1)因為attach是進入了和CMD程式互動,但是CMD程式未必就會相應你的輸入(一般程式都不會相應你的輸入吧,因為他有沒有動標準流中讀取什麼東西),所以不要以為程式死了。
(2)因為linux對PID1程式的特殊照顧,所以它本身不會相應任何訊號,除非程式自己定義了相應訊號的處理方案。也就是說,你按ctrl+c可能沒什麼反應哦。
(3)因為attach對stdout和stderr做了1M的快取,如果快取佔滿了,輸出就會有卡頓感,所以如果程式有大量的輸出,就不要用attach去看,而應該用docker logs去看log哦。
(4)如果容器建立的時候是tty-enabled container (i.e.: launched with -t),那麼就不允許重定向輸入哦。
# 容器mynginx將訪問日誌指到標準輸出,連線到容器檢視訪問資訊。
docker attach --sig-proxy=false mynginx
docker restart
重啟容器,不論之前是否啟動或停止
#可以根據容器的Name或者ID重啟容器
$ docker restart ID/NAME
Options:
# -t 引數 停止容器前等待的時間(預設10秒)
-t, --time int Seconds to wait for stop before killing the container (default 10)
docker stop
停止一個執行中的容器
#可以根據容器的Name或者ID停止容器
$ docker restart ID/NAME
Options:
# -t 引數 停止容器前等待的時間(預設10秒)
-t, --time int Seconds to wait for stop before killing it (default 10)