docker中的命令引數(小白常用)

2022-05-08 07:06:10 字數 2244 閱讀 2543

run是最常用的命令,他是docker creat和docker start命令的組合,建立容器並啟動它。run的引數比較難理解的是-i 和-t 以及-d,分別說說這三個。

-i 引數是keep stdin open even if not attached,意思就是會把互動介面保留著。但是要看容器的pid1,或者說看容器的cmd是什麼,有些cmd程式並不會理會任何輸入,也就是說它就沒有等著你輸入命令,這時候你輸入什麼都是無效的。並且,因為linux對pid1的特殊處理,它也不會理會訊號,所以你只能按ctrl+p + ctrl+q,把程式放到後台。(但通常都要run -it一起使用才有效)

allocate a pseudo-tty.作用是分配乙個虛擬的終端,我的理解就是,有了-t引數,這個docker就會被分配乙個終端,在docker中啟動bash就會有提示符。不過,-it總是一起出現的。

run container in background and print container id,就是在後台執行容器。相當於進去之後,按了ctrl+p + ctrl+q。所以可以docker attch回去。在後台執行的容器,只能通過網路和它互動了。

可以定義到底是attach stdin、stdout\stderr,如果沒有定義,則預設是 attach to both stdout and stderr。

容器退出後,自動刪除容器

為容器取乙個名字

設定埠**

要啟動乙個容器,這個容器的pid1應用是乙個不需要與使用者命令列互動的,比如乙個什麼web應用服務,那麼就用-d引數,然容器執行在後台,好好服務。比如: 

docker run --name mywebserver -d -p 80:80 my_image nginx -g 'daemon off;'

要啟動乙個容器並且用這個容器來做命令操作,他的pid1程序是乙個和使用者互動的程式,比如啟動一台busybox(pid1是bash),那麼用 -it。比如:

docker run -a stdin -a stdout -i -t ubuntu /bin/bash

或者

docker run --name myubuntu -it ubuntu /bin/bash

如果要工作後即焚毀,那麼就帶上--rm就好了。

如果容器要從管道中獲取輸入,就不允許帶-t了。比如:

$ echo test | docker run -i busybox cat

start是啟動乙個已經存在的容器,他有兩個引數-a 和-i。

attach stdout/stderr。 -a引數帶上了的話,那麼會把pid1程式的輸出都帶到終端上

attach container's stdin。 -i引數是為了讓容器相應輸入,作用其實和run中的-i一樣。

啟動乙個容器作為服務,就什麼引數都不要帶,讓他執行在後台。

啟動乙個容器作為互動應用,就帶上-i。

attach命令把乙個後台執行的容器搞到前台來,這樣你就可以看到他們的輸出,並且使用輸入了。

關閉輸入,這樣你就不能使用輸入了

訊號**,預設開啟,這樣dmd程序就可以收到你的訊號了。

把後台邊前台,基本上就是一種單一的用法docker attach container_name了。

(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),那麼就不允許重定向輸入哦。

attach的退出碼是容器退出後的退出碼。

這個命令是用已經執行的容器執行命令。需要注意的是,如果容器關閉後再次執行,那麼用exec命令執行的命令是不會自己再次執行的。

讓命令在後台執行。

設定環境變數

執行互動命令的時候用

分別設定命令執行的使用者和work directory。

你要執行互動的程式,那麼就用-it。否則,就什麼引數都不帶

你要改變使用者或者工作目錄,則使用-u或-w。

小白工作常用docker命令

常用 docker ps 檢視執行容器 docker ps a 檢視所有容器 docker images 檢視映象 docker pull 拉取映象 docker pull node 12.8.0,docker pull nginx alpine docker rmi 映象id 刪除指定映象 doc...

小白學Docker 五 容器使用中的命令

首先我們可以輸入docker命令來檢視docker客戶端的所有命令選項 可以通過docker command help 更深入的了解指定的docker命令使用 docker stats help 來檢視指令的具體使用方法 如果我們本地沒有映象 我們可以使用docker pull命令來載入映象 以ub...

docker中的命令

docker常用命令 docker images docker ps a 檢視所有映象 docker rmi 映象名稱或者映象id 刪除映象 docker stop 停止映象 docker ps l 最近的 docker ps a q 檢視所有容器id docker ps n 2 檢視2個容器 do...