1. 程式人生 > 其它 >Docker docker create|start|attach|restart|stop用法

Docker docker create|start|attach|restart|stop用法

技術標籤:dockerdocker

摘要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)