1. 幾條簡單的docker命令
容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause]
容器操作運維 — docker [ps|inspect|top|attach|events|logs|wait|export|port]
容器rootfs命令 — docker [commit|cp|diff]
鏡像倉庫 — docker [login|pull|push|search]
本地鏡像管理 — docker [images|rmi|tag|build|history|save|import]
其他命令 — docker [info|version]
2. docker下容器怎麼執行命令
Docker中我們一般會有兩種執行命令的方式,一種是直接進入容器的命令行,在終端執行並查看結果,一種是在後台執行,並不會在終端查看結果。
1、進入容器命令行
su root
docker run -i -t ubuntu:16.04/bin/bash#或者執行下面這句docker run -it ubuntu:16.04/bin/bash
-i和-t的作用是幫助你進入交互模式,如果不加這部分,你將無法進入容器內部,更別說使用命令行了。/bin/bash的意思就是使用容器的命令行來輸入命令。執行結果如下:
root@7d150a0fb029:/#
root後面跟的就是容器id,表明你已經進入容器,可以輸入命令了,你可以輸入一些常用命令試試:
root@7d150a0fb029:/# docker run -i -t ubuntu:16.04 /bin/bash
結果輸出了鏡像的內核版本信息:
Linux version 4.13.0-36-generic (buildd@lgw01-amd64-033)(gcc version 5.4.020160609(Ubuntu5.4.0-6ubuntu1~16.04.9))#40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018
通過exit可退出容器。
2、後台執行命令
輸入下面的代碼,-d表示的就是後台運行,這點可以直接通過docker run –help查看該命令的功能。下面這句話的意思就是在鏡像的程序中添加引號內的代碼,並在後台運行。
docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 1;done"
輸出結果不會顯示運行的結果,而是給出新建的容器id,這里說明一下,每次輸入docker run命令都會新建一個容器,產生一個新的id。
輸出結果如下:
查看一下正在運行的容器:
root@cdl-XPS15R:/home/cdl# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7188be9bd7b ubuntu:16.04"/bin/sh -c 'while t…"13 seconds ago Up11 seconds keen_vaughan1b6ba17f7df7 ubuntu:16.04"/bin/bash"2 minutes ago Exited(0)2 minutes ago cocky_noether7d150a0fb029 ubuntu:16.04"/bin/bash"4 minutes ago Exited(0)2 minutes ago hopeful_banach
這里會發現,第一個容器的id和後台運行的容器id前幾位一模一樣,但是長度要長很多,其實是一樣的,只不過通過ps命令列印輸出時為了方便顯示只顯示了前幾位。
如果想要進入後台運行的容器的命令行而不創建新的容器,只需要輸入以下命令:
#Exec是進入已經存在的容器,run是創建新容器docker Exec-it c7188be9bd7b /bin/bash
輸入哪個更長的id也是一樣的效果:
docker Exec -it /bin/bash
輸出結果都是:
root@c7188be9bd7b:/#
3. 如何查看docker 里某個容器的的啟動命令
1,在容器外部,物理機上,可以用docker inspect查看或者,docker inspect container。
2,如果在容器內部。可以用ps -fe查看。其中1號進程就是啟動命令。
3,Docker會在隔離的容器中運行進程。當運行docker run命令時,Docker會啟動一個進程,並為這個進程分配其獨占的文件系統、網路資源和以此進程為根進程的進程組。在容器啟動時,鏡像可能已經定義了要運行的二進制文件、暴露的網路埠等,但是用戶可以通過docker run命令重新定義(譯者註:docker run可以控制一個容器運行時的行為,它可以覆蓋docker build在構建鏡像時的一些默認配置),這也是為什麼run命令相比於其它命令有如此多的參數的原因。
4,命令格式
5,最基本的docker run命令的格式如下:
$ sudo docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
6,如果需要查看[OPTIONS]的詳細使用說明,請參考Docker關於OPTIONS的章節。這里僅簡要介紹Run所使用到的參數。OPTIONS總起來說可以分為兩類:
設置運行方式:
決定容器的運行方式,前台執行還是後台執行;
設置containerID;
設置網路參數;
設置容器的CPU和內存參數;
設置許可權和LXC參數;
設置鏡像的默認資源,也就是說用戶可以使用該命令來覆蓋在鏡像構建時的一些默認配置。
7,docker run [OPTIONS]可以讓用戶完全控制容器的生命周期,並允許用戶覆蓋執行docker build時所設定的參數,甚至也可以修改本身由Docker所控制的內核級參數。
4. Docker鏡像操作常用指令有哪些
docker version:查看docker版本;
docker info:查看docker詳細信息;
docker --help:查看docker命令;
鏡像命令
docker images:列出本地主機上的鏡像,REPOSITORY:表示鏡像的倉庫源;TAG:鏡像的標簽;IMAGE
ID:鏡像ID;CREATED:鏡像創建時間;SIZE :鏡像大小,同一個倉庫源可以有多個TAG,可以表示倉庫源的不同版本,使用REPOSITORY:TAG來定義不同的鏡像;
docker images -a:列出本地所有的鏡像;
docker images -p:只顯示鏡像ID;
docker images --digests:顯示鏡像的摘要信息;
docker images --no-trunc:顯示完整的鏡像信息;
docker search tomcat:從Docker Hub上查找tomcat鏡像;
容器命令
docker run [OPTIONS] IMAGE:根據鏡像新建並啟動容器,IMAGE是鏡像ID或鏡像名稱;
docker ps:列出當前所有正在運行的容器;
exit:退出並停止容器;
docker start 容器ID或容器名稱:啟動容器;
docker restart 容器ID或容器名稱:重新啟動容器;
docker stop 容器ID或容器名稱:停止容器;
docker kill 容器ID或容器名稱:強制停止容器;
docker rm 容器ID或容器名稱:刪除容器;
docker rm -f $(docker ps -a -q):刪除多個容器。
5. docker啟動容器命令
它的一個啟動容器的命令基本上都是可以進行相應參考的,所以說這種情況下一定要選擇一個經常用的命令才行。
6. docker進入container之後能運行什麼命令
操作命令如下: Docker會在隔離的容器中運行進程。當運行docker run命令時,Docker會啟動一個進程,並為這個進程分配其獨占的文件系統、網路資源和以此進程為根進程的進程組。在容器啟動時,
7. 如何通過Docker進行容器編排
使用 weave 前需要所宿主機安裝 Docker 環境參考些教程 Ubuntu 或 CentOS/Fedora 發行版安裝 Docker
Docker 環境部署完使用面命令安裝 weave:
$ wget chmod a+x weave$ sudo cp weave /usr/local/bin
注意 PATH 環境變數要包含 /usr/local/bin 路徑請 /etc/profile 文件加入行(LCTT 譯註:要使環境變數效需要執行命令: source /etc/profile):
export PATH="$PATH:/usr/local/bin"
每台宿主機重復面操作
Weave TCP UDP 都使用 6783 埠系統啟防火牆請確保兩埠防火牆擋住
每台宿主機啟 Weave 路由器
想要讓處於同宿主機容器能夠互相通信第步要做每台宿主機啟 weave 路由器
第台宿主機運行面命令創建並啟 weave 路由器容器(LCTT 譯註:前面說weave 路由器容器):
$ sudo weave launch
第運行命令候載 weave 鏡像花些間載完自運行鏡像功啟終端輸 weave 路由器 ID 號
面命令用於查看路由器狀態:
$ sudo weave status
第 weave 路由器緒目前止整 peer 等網路 peer 員
使用 docker 命令查看 weave 路由器狀態:
$ docker ps
第二台宿主機部署步驟稍微點同我需要台宿主機 weave 路由器指定第台宿主機 IP 址命令:
$ sudo weave launch
查看路由器狀態看兩 peer 員:前宿主機第宿主機
啟更路由器 peer 員列表更新路由器要指定前宿主機 IP 址請注意第宿主機 IP 址(LCTT 譯註:鏈狀結構)
現已經 weave 網路由位於同宿主機 weave 路由器組
同宿主機容器互聯起
接要做同宿主機啟 Docker 容器並使用虛擬網路互聯起
假設我創建私網路 10.0.0.0/24 互聯 Docker 容器並些容器隨機配 IP 址
想新建能加入 weave 網路容器需要使用 weave 命令創建 docker 命令原 weave 命令內部調用 docker 命令新建容器設置網路
面命令宿主機 hostA 建立 Ubuntu 容器放 10.0.0.0/24 網路配 IP 址 10.0.0.1:
hostA:~$ sudo weave run 10.0.0.1/24 -t -i ubuntu
功運行終端顯示容器 ID 號使用 ID 訪問容器:
hostA:~$ docker attach
宿主機 hostB 創建 Ubuntu 容器IP 址 10.0.0.2:
hostB:~$ sudo weave run 10.0.0.2/24 -t -i ubuntu
訪問容器控制台:
hostB:~$ docker attach
兩容器能夠互相 ping 通通容器控制台檢查
檢查每容器網路配置發現塊名ethwe網卡配給容器 IP 址現(比別 10.0.0.1 10.0.0.2)
Weave 其高級用
weave 提供些非巧妙特性我作簡單介紹
應用離
使用 weave創建虛擬網路並每網路設置同應用比群容器創建 10.0.0.0/24 網路另群容器創建 10.10.0.0/24 網路weave 自幫維護些網路並兩網路互相隔離另外靈容器網路移另網路需要重啟容器舉例:
首先啟容器運行 10.0.0.0/24 網路:
$ sudo weave run 10.0.0.2/24 -t -i ubuntu
讓脫離網路:
$ sudo weave detach 10.0.0.2/24
加入 10.10.0.0/24 網路:
$ sudo weave attach 10.10.0.2/24
現容器與 10.10.0.0/24 網路其容器進行通信創建容器網路信息確定幫助
weave 網路與宿主機網路整合起
候想讓虛擬網路容器能訪問物理主機網路或者相反宿主機需要訪問容器滿足功能weave 允許虛擬網路與宿主機網路整合
舉例宿主機 hostA 容器運行 10.0.0.0/24 運行使用面命令:
hostA:~$ sudo weave expose 10.0.0.100/24
命令 IP 址 10.0.0.100 配給宿主機 hostA宿主機 hostA 連 10.0.0.0/24 網路顯宿主機選擇 IP 址候需要選沒其容器使用址
現 hostA 訪問 10.0.0.0/24 所容器管些容器否位於 hostA 巧妙設定啊32 贊
8. 怎麼在docker裡面安裝鏡像命令
Docker容器運行後,如何進入容器進行操作呢?起初我是用SSH。如果只啟動一個容器,用SSH還能應付,只需要將容器的22埠映射到本機的一個埠即可。當我啟動了五個容器後,每個容器默認是沒有配置SSH Server的,安裝配置SSHD,映射容器SSH埠,實在是麻煩。 我發現很多Docker鏡像都是沒有安裝SSHD服務的,難道有其他方法進入Docker容器? 有很多種方法,包括使用 docker attach 命令或 nsenter 工具等。 使用 attach 命令有時候並不方便。當多個窗口同時 attach 到同一個容器的時候,所有窗口都會同步顯示。 nsenter 可以訪問另一個進程的名字空間。 為了連接到容器,你還需要找到容器的第一個進程的 PID,可以通過下面的命令獲取。
9. docker容器啟動命令 /bin/bash有什麼用,我發現不寫這個命令也可以啟動啊,求教大神。
這個命令不是啟動容器的必填參數,這個命令只是在容器中會啟動這個進程,如果你容器有寫entrypoint的話,後面的命令會作為參數給entrypoint,entrypoint運行正常的話,容器就啟動正常,所以和/bin/bash沒有關系