1、Docker的基礎命令node
[root@node02 ~]# docker volume prune -f #刪除無主的數據卷 #在運行容器時,-v掛載目錄時沒有指定本地要掛載的目錄,而是由docker管理的, #當容器刪除後,這些目錄並不會被刪除,此時這種目錄就是無主數據卷。 #若要在刪除容器時,同時刪除這些數據卷,可使用如下命令(添加「-v」選項便可): [root@node02 ~]# docker rm -f -v 8086 #其中8086爲容器ID [root@master volumes]# docker container prune -f #清理掉全部處於終止狀態的容器。 [root@localhost ~]# docker search dhcp #以DHCP做爲關鍵字進行搜索鏡像 [root@localhost ~]# docker pull docker.io/networkboot/dhcpd #下載查詢出來的某個鏡像 [root@localhost ~]# docker images #查詢下載的鏡像 [root@localhost ~]# docker tag docker.io/networkboot/dhcpd dchp:dhcp #改新名稱及標籤 [root@localhost ~]# docker rmi docker.io/networkboot/dhcpd #刪除鏡像 [root@localhost ~]# docker save -o dhcptest dchp:dhcp #導出爲本地鏡像 [root@localhost ~]# docker load --input dhcp #導入鏡像 #或者 [root@localhost ~]# docker load < dhcp #導入鏡像 [root@docker ~]# docker save > dhcp busybox:latest #導出鏡像busybox [root@localhost ~]# docker push docker.io/ljztest/dhcp #上傳鏡像 [root@localhost ~]# docker create -itd dchp:dhcp /bin/bash #建立一個容器,並指定僞終端 #選項解釋以下: * -i:交互式 * -t:分配一個爲終端 * -d:後臺運行 [root@docker ~]# docker run -itd --name test2 --restart=always httpd #保持容器處於開機自啓狀態 #做用是能夠在執行「systemctl restart docker」時,使容器也隨之重啓; #若不加--restart,那麼一旦執行「systemctl restart docker」,這個容器將會中止。 [root@localhost ~]# docker ps -a #查出容器的ID號 [root@localhost ~]# docker exec -it 2304f92a8158 /bin/bash #進入一個容器 [root@docker ~]# docker attach test1 #也是進入一個容器 #若是是attach進入容器,使用exit退出的話這個容器也會關閉。 #使用ctrl+p ctrl+q退出容器,並不會關閉這個容器,會保持容器的運行狀態。 [root@docker ~]# docker ps -a -q | xargs docker start #開啓全部容器 [root@docker ~]# docker ps -a -q | xargs docker stop #關閉全部容器 [root@docker ~]# docker logs test1 #查看容器的日誌,能夠在後面加「-f」選項,動態輸出 [root@docker ~]# docker ps -a -q | xargs docker rm -f #刪除全部容器,威力不亞於rm -rf /* [root@localhost ~]# docker ps -a -q | xargs docker start #啓動全部容器 [root@localhost ~]# docker rm 2304f92a8158 #刪除容器 [root@docker ~]# docker run -it --name containerB -c 512 centos #建立一個名爲containerB的容器,設置其CPU的權重爲512 [root@docker ~]# docker run -it --name testA --device-write-bps /dev/sda:30MB centos #限制磁盤的每秒能夠寫入的大小爲30MB #其中還能夠有如下選項: #--device-read-bps:設置讀設備的bps #--device-write-bps:設置寫入設備的bps #--device-read-iops:設置讀取設備的iops #--device-write-iops:設置寫入設備的iops。 [root@docker lv]# docker history test04:latest #若是使用Dockerfile製做鏡像,可使用這條命令查看這個鏡像都作過什麼 [root@docker ~]# docker logs web01 #查看容器的日誌,能夠加「-f」選項,動態刷新。 [root@docker ~]# docker commit web01 mytest:v1.0 #將容器製做爲鏡像 [root@docker ~]# docker cp /a.txt web01:/usr #將本機的文件複製到容器中 [root@docker ~]# docker cp web01:/usr/a.txt /usr #將容器中的文件複製到本機中
2、docker網絡管理相關的命令:web
[root@docker ~]# docker network ls #查看docker的網絡 [root@docker ~]# brctl show #專用於查看虛擬網絡 [root@docker ~]# docker exec web ip a #查看某個指定容器的網絡信息 [root@docker ~]# docker network create -d bridge my_net #建立一個docker的網絡,-d:指定驅動類型 [root@docker ~]# docker network create -d bridge --subnet 172.22.0.0/24 my_net2 #建立網絡時,指定網段 [root@docker ~]# docker network inspect my_net2 #查看這個網絡的詳細信息 [root@docker ~]# docker inspect web05 #查看容器的詳細信息 [root@docker ~]# docker inspect web05 #查看容器的詳細信息 [root@docker ~]# docker run -tid --name web07 --network my_net2 --ip 172.22.0.8 busybox #啓動容器時,一併指定IP地址。 [root@docker ~]# docker exec web03 ping 172.17.0.3 #不進入虛擬機執行ping命令。 [root@docker ~]# iptables-save #查看iptables規則 [root@docker ~]# docker network connect my_net web001 #將web001鏈接至my_net網絡,執行後web001將會多出一塊網卡,並具備my_net網絡的IP地址。
3、docker Swarm羣集經常使用命令docker
[root@docker01 ~]# docker node ls #查看羣集的信息(只能夠在manager角色的主機上查看) [root@docker01 ~]# docker swarm join-token worker #若是後期須要加入worker端,能夠執行此命令查看令牌(也就是加入時須要執行的命令) [root@docker01 ~]# docker swarm join-token manager #同上,若要加入manager端,則能夠執行這條命令查看令牌。 [root@docker01 ~]# docker service scale web05=6 #容器的動態擴容及縮容 [root@docker01 ~]# docker service ps web01 #查看建立的容器運行在哪些節點 [root@docker01 ~]# docker service ls #查看建立的服務 #將docker03脫離這個羣集 [root@docker03 ~]# docker swarm leave #docker03脫離這個羣集 [root@docker01 ~]# docker node rm docker03 #而後在manager角色的服務器上移除docker03 [root@docker01 ~]# docker node promote docker02 #將docker02從worker升級爲manager。 #升級後docker02狀態會爲Reachable [root@docker01 ~]# docker node update --availability drain docker01 #設置主機docker01之後不運行容器,但已經運行的容器並不會中止