常用Docker命令
docker命令分為管理命令、鏡像命令、容器命令、倉庫命令、網絡命令、數據卷命令、編排命令。
1、啟動docker
~$ sudo service docker start
1
2、確認Docker運行狀態
~$ sudo docker run --rm hello-world
1
Hello from Docker! //出此句說話,即正常
3、重啟Docker
~$ sudo service docker restart
1
4、搜索docker鏡像 ,如搜索ubuntu相關的鏡像
~$ sudo docker search ubuntu
1
5、從指定倉庫拉取docker鏡像到本地,格式:docker pull containerName:tag,不指定tag,默認last,拉取的鏡像放在/var/lib/docker/
~$ sudo docker pull nginx Using default tag: latest latest: Pulling from library/nginx 6ae821421a7d: Pulling fs layer da4474e5966c: Pulling fs layer eb2aec2b9c9f: Download complete /var/lib/docker$ sudo ls /var/lib/docker builder containers network plugins swarm trust buildkit image overlay2 runtimes tmp volumes
1
2
3
4
5
6
7
8
9
10
6、將docker鏡像推送到倉庫,不指定tag,默認是last
~$ sudo docker push name[:tag] ~$ sudo ls -l /var/lib/docker total 48 drwx------ 2 root root 4096 11月 14 15:02 builder drwx------ 4 root root 4096 11月 14 15:02 buildkit drwx------ 3 root root 4096 11月 15 16:09 containers //存放容器的信息 drwx------ 3 root root 4096 11月 14 15:02 image //存放鏡像的信息 drwxr-x--- 3 root root 4096 11月 14 15:02 network //存放網絡的信息 drwx------ 15 root root 4096 11月 15 16:58 overlay2 drwx------ 4 root root 4096 11月 14 15:02 plugins drwx------ 2 root root 4096 11月 14 15:22 runtimes drwx------ 2 root root 4096 11月 14 15:02 swarm //存放集群的信息 drwx------ 2 root root 4096 11月 15 15:04 tmp drwx------ 2 root root 4096 11月 14 15:02 trust drwx------ 2 root root 4096 11月 14 15:02 volumes //存放數據卷的信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
7、查看Docker本地鏡像
~$ sudo docker images
1
8、構建鏡像
(1)通過Docker Hub自動構建
(2)用build命令構建:
首先,在當前目錄下創建Dockerfile文件
然后執行下面的命令:
~$ sudo docker build -t myubuntu:me . //別忘了最后的那個點,表示當前目錄。 ~$ sudo docker images //查看
1
2
3
在當前目錄建立一個名為Dockerfile的文件,然后指定一個基礎鏡像:
from ubuntu Run echo
1
2
鏡像定制就是在一個基礎鏡像上不斷堆疊其他部分。
9、導出Docker鏡像
~$ sudo docker save -o myu.tar myubuntu:me ~$ ls myu.tar
1
2
3
10、導入由save命令導出 的Docker鏡像
~$ sudo docker load -i myu.tar
1
11、docker rmi命令能確保沒有容器使用的情況下,刪除docker鏡像
~$ sudo docker rmi myubuntu:me
1
12、docker create命令創建容器,此時僅僅創建了容器但并未啟動,可用docker start命令啟動容器。docker create命令常用于在啟動容器之前進行必要的設置,如設置容器另名、指定數據卷、指定端口映射、設置ip等,后續會一一提到,在此先給出個簡單的例子:
~$ sudo docker create -it --name myU myubuntu:me bash
1
13、啟動docker容器,容器必須先用docker create命令創建出來
~$ sudo docker start -a -i myU //容器的別名或id
1
13、重啟docker容器
~$ sudo docker restart myU
1
14、查看本地docker容器信息
~$ sudo docker ps -a
1
15、查看docker容器狀態
~$ sudo docker stats myU
1
16、刪除docker容器,注意docker rmi是刪除鏡像
~$ sudo docker rm myub
1
17、停止Docker容器進程,正常停止可以保證數據不會丟失
~$ sudo docker stop myU
1
18、殺掉Docker容器進程,此舉屬于非正常停止容器,數據可能會丟失
~$ sudo docker kill myU
1
19、[不推薦]創建并啟動docker容器,有些機器上,此命令可能會沒有效。
~$ sudo docker run -it –name myUU myubuntu:me bash //容器名為myUU 鏡像為 myubuntu:me
1
20、進入容器的方式,大概有ssh登錄、nsenter或nsinit第三方工具、Docker工具等
~$ sudo docker attach myU 或 ~$ sudo docker exec -it myU bash //推薦
1
2
3
21、暫停docker容器
~$ sudo docker pause myU
1
22、恢復puase暫停的docker容器
~$ sudo docker unpause myU
1
23、docker容器與宿主機之間的文件復制(所謂宿主機,就是安裝了docker的主機)
(1)從docker容器復制文件到宿主機:
docker cp :
~$ sudo docker cp myU:/home/home.txt /home/wong/Dektop
1
(2)從宿主機復制文件到docker容器:
docker cp
~$docker cp /home/wong/Dektop/haha.txt
1
24、查看容器的變化
~$ sudo docker diff myU
1
25、提交當前容器并打包為鏡像 。容器內的文件和宿主機是隔離開的,如果不使用docker commit提交容器作為鏡像數據保存下來的話,數據就會因為容器的刪除而丟失。這樣不利于遷移和重新構建等情況。
~$ sudo docker commit myU
1
25、導出本地Docker容器,tar包鏡像包
~$ sudo docker export -o myUbuntu.tar myU 或 ~$ sudo docker export myU > myUbuntu.tar
1
2
3
26、導入export導出的Docker鏡像
~$docker import https://example.com/container.tar //導入存放在網絡上的鏡像 ~$sudo docker import myUbuntu.tar //導入本地包
1
2
27、查看Docker服務端的事件
//容器相關的attach、commit、copy、create、destroy、detach、die、exec_create、exec_detach、exec_start、export、kill、oom、pause、rename、resize、restart、start、stop、top、unpause、update
~$ sudo docker events -f container=
1
//鏡像相關的delete、import、load、pull、push、save、tag、untag
~$ sudo docker events -f image=
1
//create、mount、unmount、destroy
~$ sudo docker events -f network=
1
//create、connect、disconnect、destroy
~$ sudo docker events -f daemon=
1
//delete、import、load、pull、push、save、tag、untag
~$ sudo docker events -f volume=
1
28、查看Docker鏡像歷史
~$ sudo docker history ubuntu
1
29、查看Docker信息
~$docker info
1
30、查看詳細信息
~$docker inspect CONTAINER|IMAGE|TASK
1
31、查看docker容器日志
~$ sudo docker logs myU
1
32、重命名docker鏡像
~$ sudo docker rename myU_old MyL_new
1
33、查看容器進程
~$ sudo docker top myU
1
34、設置鏡像標簽 :Docker中的鏡像、容器、網絡、數據卷等 組件在運行時,都會自動獲取一個ID,ID是唯一的,但ID不好記,可以打上標簽,那么通過標簽來找就方便多了。
~$sudo docker tag afb9ac76685c mylove:2018
1
35、查看docker版本
~$ sudo docker version
1
36、設置容器等待,一般用于容器的監控、異常捕捉方面
~$ sudo docker wait container
1
37、對容器做的設置進行更新,命令格式:
docker update [OPTIONS] CONTAINER [CONTAINER…]
–blkio-weight
0
阻塞IO(相對權重),介于10和1000之間,或0禁用(默認為0)
–cpu-period
0
限制CPU CFS(完全公平的調度程序)周期
–cpu-quota
0
限制CPU CFS(完全公平的調度程序)配額
–cpu-rt-period
0
限制CPU實時周期(以微秒為單位)
–cpu-rt-runtime
0
以微秒為單位限制CPU實時運行時間
–cpu-shares, -c
0
CPU份額(相對權重)
–cpuset-cpus
允許執行的CPU(0-3,0)
–cpuset-mems
允許執行的內存率(0-3,0.1)
–kernel-memory
內核內存限制
–memory, -m
內存限制
–memory-reservation
內存軟限制
–memory-swap
交換限制等于內存加交換:’-1‘以啟用無限制的交換
–restart
更新容器應用的策略
~$ sudo docker update -m 500m --memory-swap -1 myU
1
設置了之后 可以通過$sudo docker stats myU查看
38、管理數據卷的docker volume命令
Docker的卷有兩種:數據卷、數據卷容器
數據卷:數據卷就是一個目錄,它是由Docker daemon掛載到容器中的,因此數據卷并不屬于聯合文件系統。Docker使用的是AUFS聯合文件系統。兩個容器使用同一個數據卷,就是數據卷共享。
數據卷容器:專門用來存放數據的數據卷容器。它不需要運行任何應用,只是一個存放數據的容器,允許其他容器掛載就可以了。注意:不要運行數據卷容器,因為這純粹是一種浪費資源,只要數據卷容器存在,數據卷就不會消失,不管容器處于什么狀態。
(1)掛載數據卷
在使用docker run或docker create命令時,指定-v參數來添加數據卷,如:
第一步,創建容器,并指定數據卷:
~$ sudo docker create -it --name mVVV -v /hostVol:/ContainerV myv:2018 bash
1
注:-v /hostVol:/ContainerV:rw 表示可讀可寫 -v /hostVol:/ContainerV:ro只讀
第二步,啟動容器
~$ sudo docker start -a -i mVVV
1
第三步,測試:
root@974478e5a35c:/# cd ContainerV root@974478e5a35c:/ContainerV# touch hahah.txt root@974478e5a35c:/ContainerV# echo "safdsafdsafasfdasfddsaf" > hahah.txt
1
2
3
第四步,測試結果顯示在宿主機目錄/hostVol下有名為hahah.txt的文件,內容為 safdsafdsafasfdasfddsaf。測試成功。
第五步:用docker inspect查看數據卷的詳細信息
~$sudo docker inspect mVVV "Mounts": [ { "Type": "bind", "Source": "/hostVol", "Destination": "/ContainerV", "Mode": "", "RW": true, "Propagation": "rprivate" } ... ]
1
2
3
4
5
6
7
8
9
10
11
12
如果沒有指定在宿主機的目錄,則使用默認的目錄,如:
~$ sudo docker create -it --name mVVV -v /ContainerV myv:2018 bash ~$sudo docker inspect mVVV "Mounts": [ { "Type": "volume", "Name": "2d49f45311e30297186819f8507b9944f76337abe971351a4510f6e319a5a41e", "Source": "/var/lib/docker/volumes/2d49f45311e30297186819f8507b9944f76337abe971351a4510f6e319a5a41e/_data", "Destination": "/ContainerV", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ... ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
可以看到在宿主機的目錄是:/var/lib/docker/volumes/2d49f45311e30297186819f8507b9944f76337abe971351a4510f6e319a5a41e/_data,我想你也不想去記一個這么長的目錄吧,所以最好指定一個宿主機目錄。
將宿主機上的目錄(對容器來說就是數據卷)掛載到容器上,不僅僅可以保存數據卷內容,還可以把程序代碼目錄掛載到容器上,在容器里面編譯,編譯成功直接在宿主機下就可以找到編譯好的項目,保證宿主機的清潔與穩定。
(2)掛載數據卷容器
雖然掛載本地目錄到容器解決了數據持久化的問題,但是遷移上還是很麻煩,比如多個容器之間共享數據需要遷移時,使用掛載宿主機的文件夾的方法遷移起來就會很麻煩。所以為了管理數據卷,可以啟動一個容器專門用來存放數據。
第一步,創建數據卷容器
~$ sudo docker create -it -v /HostVol:/ContainerVol --name=My_Volume ubuntu bash
1
第二步,啟動其他容器,并掛載數據卷容器
~$ sudo docker create -it --volumes-from=My_Volume --name=db1 ubuntu bash
1
甚至還可以通過容器db1來掛載到后續啟動的容器中:
~$ sudo docker create -it --volumes-from=db1 --name=db2 ubuntu bash
1
第三步測試:掛載了數據卷容器的容器都有/ContainerVol這個目錄,把上面這些容器全部刪除掉,數據卷也不會消失,因為數據卷保存在了宿主機/HostVol目錄下。如果沒有數據卷容器映射到宿主機的某個指定目錄,則數據卷在宿主機上的/var/lib/docker/volumes/的某個目錄下,即使用默認目錄,可通過docker inspect 查看詳細信息。
~$ sudo docker start -a -i db2 root@0ae704541d7c:/# ls ContainerVol bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@0ae704541d7c:/# cd ContainerVol root@0ae704541d7c:/ContainerVol# touch haha.txt root@0ae704541d7c:/ContainerVol# echo "adfasdfsadf" > haha.txt
1
2
3
4
5
6
第四步,測試結果顯示在宿主機目錄/HostVol 下有名為haha.txt的文件,內容為 adfasdfsadf。測試成功。
顯示所有沒有掛載到容器上的數據卷:
//刪除容器時沒有使用-v標志,這些數據卷就會成為dangling狀態。 ~$sudo docker volume ls f dangling=true //刪除這些dangling狀態的數據卷 ~$sudo docker volume rm
1
2
3
4
5
6
7
39、備份數據卷
第一步:先創建一個臨時容器,再掛載數據卷/host_backup目錄到臨時容器/tmp_container_backup目錄,再掛載要備份的數據卷容器(要備份的目錄是/ContainerVol)。
~$ sudo docker create -it -v /host_backup:/tmp_container_backup --volumes-from=My_Volume --name tmpBackupContainer ubuntu bash
1
第二步:啟動臨時容器
~$ sudo docker start -a -i tmpBackupContainer
1
第三步:在臨時容器中執行備份,如壓縮數據卷容器中(/ContainerVol)的文件,然后放到/tmp_container_backup目錄下,這樣宿主機/host_backup目錄下存在了相同的文件,這樣就完成了備份。如:
root@59269ee13d6a:/# ls ContainerVol bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp tmp_container_backup usr var root@59269ee13d6a:/# cd ContainerVol root@59269ee13d6a:/ContainerVol# ls haha.txt root@59269ee13d6a:/ContainerVol# tar -cvjpf haha.tar.bz2 haha.txt haha.txt root@59269ee13d6a:/ContainerVol# ls haha.tar.bz2 haha.txt root@59269ee13d6a:/ContainerVol# mv haha.tar.bz2 ../tmp_container_backup
1
2
3
4
5
6
7
8
9
10
宿主機/host_backup目錄下存在了haha.tar.bz2
40、遷移、恢復數據卷
第一步:創建一個數據卷容器,數據卷目錄名要與備份的一樣:
~$ sudo docker create -it -v /ContainerVol --name db_data2 ubuntu bash
1
第二步:創建一個臨時容器 tmpContainer
~$ sudo docker create -it --name tmpContainer --volumes-from db_data2 -v /host_backup:/tmp_container_backup ubuntu
1
第三步:啟動臨時容器,在容器中解壓文件,再將文件移動到新的數據卷容器的/ContainerVol 目錄下就完成了數據的遷移及恢復。
~$ sudo docker start -a -i tmpContainer root@b8c7d1e13f5f:/# ls ContainerVol bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp tmp_container_backup usr var root@b8c7d1e13f5f:/# cd tmp_container_backup root@b8c7d1e13f5f:/tmp_container_backup# tar -xvjf haha.tar.bz2 haha.txt root@b8c7d1e13f5f:/tmp_container_backup# mv haha.txt ../ContainerVol
1
2
3
4
5
6
7
第四步:測試,啟動新的數據卷容器,看文件是否恢復成功。
~$ sudo docker start -a -i db_data2 root@73fe55200f52:/# ls ContainerVol bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@73fe55200f52:/# cd ContainerVol root@73fe55200f52:/ContainerVol# ls haha.txt //在新的數據卷容器有恢復的內容 root@73fe55200f52:/ContainerVol#
1
2
3
4
5
6
7
小結:Docker的volume本質上是一個目錄,它是一個掛載點,在容器創建時,這個掛載點會被掛載到一個宿主機的目錄,這個目錄可以是以volume ID為名的文件夾,也可以是啟動參數中指定的目錄。掛載之后容器與宿主機顯示的目錄會表現為同一個目錄,獨立于容器的rootfs 。
Docker傳統的卷管理只能掛載本機目錄到容器中,數據的備份、同步、遷移都是個挑戰,可以通過第三方插件來解決,如Convoy和Flocker插件。
41、管理網絡命令
Docker目前對單節點的設備提供了映射容器端口到宿主機、容器互聯兩個網絡服務。
端口映射:在Docker中容器默認是無法與外部通信的,需要在啟動命令中加入對應參數才允許容器與外界通信。
當容器運行著一個Web服務時,需要把容器內的web服務應用程序端口映射到本地宿主機的端口,這樣用戶通過訪問宿主機指定端口時,相當于訪問容器內部的web服務端口,映射方式:
(1)端口映射方式1:-p Local_Port:Container_Port ,這種方式可以讓訪客通過訪問宿主機的端口來訪問容器服務,一般情況下,都用這種方式。
(2)端口映射方式2:-p Local_IP:Local_Port:Container_Port ,這種方式可以映射到指定地址的指定端口。例如映射到127.0.0.1這個地址:-p 127.0.0.1:8000:80,那么這個端口只能通過本機訪問,外部無法訪問這個容器服務,一般在測試環境下會用到。同樣地,如果指定了一個子網IP,那么只有在同一個子網內的用戶才可以訪問,局域網外的用戶無法訪問。
(3)端口映射方式3:-p Local_IP::Container_Port ,這種方式有點像方式2,就是指定了哪些IP可以訪問,但是宿主機端口卻是隨機分配映射的。
(4)端口映射方式4:指定傳輸協議,以上三種格式還可以使用tcp或者udp標記來指定端口,如:
方式1:-p Local_Port:Container_Port /tcp
方式2:-p Local_IP:Local_Port:Container_Port /udp
方式3:-p Local_IP::Container_Port /tcp
42、容器互聯
端口映射的用途是宿主機與容器的通信,而容器互聯是容器之間的通信。容器互聯除了端口映射外,還可以通過容器別名互聯。使用容器別名互聯時,容器必須要有一個名字,也就–name指定的值。這個值不管理用戶是否定義了,都會存在,默認由Docker隨機生成詞組。但一般為了方便操作與記憶都會手動設置容器名稱。如果忘記了設置名稱,可以通過docker rename來重命名容器。容器的名稱是唯一了,如果名稱已存在,新的同名容器會無法創建。容器互聯的參數–link,步驟如下:
第一步,創建一個數據庫容器:
~$ sudo docker create -it --name db -e MYSQL_ROOT_PASSWORD=password mysql:5.6
1
注:-e MYSQL_ROOT_PASSWORD=password設置數據庫root密碼
第二步,啟動數據庫容器:
~$ sudo docker start -a -i db
1
第三步,創建一個web服務:
~$ sudo docker create -it -p 8000:80 --name myPhpWeb --link db:myphp richarvey/nginx-php-fpm bash
1
這里–link db:myphp使用參數值左右不同的寫法來區分,左邊表示的是剛才啟動的容器名稱,代表MySQL容器,右邊myphp表示后來運行的PHP容器。
第四步,啟動PHP容器
~$ sudo docker start -a -i myPhpWeb
1
第五步,測試PHP容器與數據庫容器是否互聯成功。在PHP容器啟動完成后,使用ping db查看是否連接成功:
bash-4.4# ping db PING db (172.17.0.2): 56 data bytes 64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.113 ms 64 bytes from 172.17.0.2: seq=1 ttl=64 time=0.166 ms 64 bytes from 172.17.0.2: seq=2 ttl=64 time=0.170 ms 64 bytes from 172.17.0.2: seq=3 ttl=64 time=0.122 ms 64 bytes from 172.17.0.2: seq=4 ttl=64 time=0.171 ms 64 bytes from 172.17.0.2: seq=5 ttl=64 time=0.163 ms 64 bytes from 172.17.0.2: seq=6 ttl=64 time=0.147 ms ^C --- db ping statistics --- 7 packets transmitted, 7 packets received, 0% packet loss round-trip min/avg/max = 0.113/0.150/0.171 ms
1
2
3
4
5
6
7
8
9
10
11
12
13
ping通了,表明容器互聯成功了。注:ping <容器名>
也可以建立一個PHP文件,測試是否能連接 MySQL容器。
1
2
3
4
5
6
注意mysql_connect(“mysql”,”root”,”password”);之中沒有使用localhost來連接,這是因為在容器中的/etc/hosts文件會實時根據環境而改變,例如使用—link連接容器的時候,就會在容器的/etc/hosts文件中添加一行內容:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 mysql 00467a2d7da1 db
172.17.0.3 7efd4da74342
–link只能在容器之間使用。使用–link參數創建的容器會使用容器的主機名和容器ID來更新自己的/etc/hosts文件。使用–link參數時不會向宿主機映射端口,而是在容器之間建立一個通信隧道,因此避免了把數據庫端口暴露到外部網絡中。
值得注意的是,使用–link時不只是允許容器之間通信,還包括環境變量的設置,如:
root@7efd4da74342:/# env
…
MYSQL_ENV_MYSQL_ROOT_PASSWORD=password
MYSQL_PORT_3306_TCP_PROTO=tcp
HOSTNAME=7efd4da74342
MYSQL_NAME=/PHPWEB/mysql
MYSQL_ENV_MYSQL_MAJOR=5.6
MYSQL_PORT=tcp://172.17.0.2:3306
MYSQL_PORT_3306_TCP=tcp://172.17.0.2:3306
PWD=/
MYSQL_ENV_MYSQL_VERSION=5.6.42-1debian9
HOME=/root
MYSQL_PORT_3306_TCP_PORT=3306
MYSQL_PORT_3306_TCP_ADDR=172.17.0.2
TERM=xterm
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MYSQL_ENV_GOSU_VERSION=1.7
_=/usr/bin/env
root@7efd4da74342:/#
從上述結果可以看出,使用env輸出的內容實際上都是db容器的環境變量,通過–link使得環境變量也交換了,這樣做有助于迅速與數據庫建立連接,如果PHP容器之前設置了env,那么將會被后來的db容器的env覆蓋。–link參數可以使用多次,即PHP容器允許連接多個數據庫。
43、端口暴露
端口暴露與端口映射是兩個不同的概念??梢杂肊XPOSE指令在Dockerfile里定義或用—expose參數來指定,如–expose=1324
44、Docker網絡模式
(1)bridge模式是Docker默認的網絡模式,屬于一種NAT網絡模型,Docker daemon在啟動的時候就會建立一個docker0網橋,每個容器使用bridge模式啟動時,Docker都會為容器創建一對虛擬網絡接口設備。這對設備一端在容器的Network Namespace,另一端在docker0。這樣就實現了容器與宿主機的通信。
(2)none模式:不為容器配置任何網絡,使用容器完全失去網絡功能,啟用這種模式,添加–net=none即可。
(3)container模式:表不與另一個運行中的容器共享一個Network Namespace, --net=container:<另一個容器名>。查看兩個容器的/etc/hosts會發現它們都擁有同一個hostname。
(4)host模式:不推薦,與主機共享Root Network Namespace,容器有完整的權限操縱主機的網絡配置。
(5)overlay模式:是Docker原生的跨主機多子網網絡模型,當創建一個新的網絡時,Docker會在主機創建一個Network Namespace,Network Namespace內有一個網橋,網橋上有一個vxlan接口,每個網絡占用一個vxlan ID,當容器被添加到網絡中時,Docker會分配一對veth網卡設置,與bridge模式一樣,一端在容器的Network Namespace,另一端在主機的Network Namespace上。
docker network connect <網絡名> <容器名>//將指定容器連接到指定網絡
如:
~$ sudo docker network connect foo PHPWEB
1
用docker network create <網絡名>創建一個網絡。默認情況下,新建網絡默認使用橋接模式,如果想要新建其他模式的網絡可以使用-d參數來指定。如:
~$ sudo docker network create foo 99a4382fbaf78288694fd408ccaa8d01e4ba7a6428a963cf8b0bd67e9b51cc50 ~$ sudo docker network diconnect <網絡名> <容器名>//斷開指定容器的網絡 如:~$ sudo docker network disconnect foo PHPWEB ~$ sudo docker network inspect <網絡名>//顯示指定容器的網絡信息 如:~$ sudo docker network inspect foo ~$ sudo docker network ls //顯示所有docker的網絡 如:~$ sudo docker network ls NETWORK ID NAME DRIVER SCOPE 4a1b46aff078 bridge bridge local 99a4382fbaf7 foo bridge local baf35b082a88 host host local be8b94f86fbf none null local
1
2
3
4
5
6
7
8
9
10
11
12
13
用 docker network rm <網絡名>刪除指定網絡,如:
~$ sudo docker network rm foo
1
45、查看docker容器端口
docker port 只能查看運行中的容器的端口信息如:
~$ sudo docker port PHPWEB [sudo] password for wong: 80/tcp -> 0.0.0.0:8000
1
2
3
46、docker daemon設置Docker啟動時的網絡參數(此命令運行在服務端)
-b,將容器附加到一個網橋上
–bip 指定docker0的IP,不能與-b一起用
–default-gateway指定容器默認的IPV4網關
–default-gateway-v6指定容器默認的IPV6網關
–dns=[]設置容器默認的DNS
–dns-opt=[]
–dns-search=[]
–icc=true設置是否允許容器間通信
–ip=0.0.0.0容器端口暴露時綁定的主機IP,一般默認即可。
–iptables=true設置是否允許向iptables添加規則
47、登錄docker鏡像倉庫
$docker login
1
48、登出docker鏡像倉庫
$docker logout
1
Docker 容器
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。