[root@localhost ~]# docker pull 鏡像名稱 //下載鏡像(如果不指定鏡像標(biāo)簽?zāi)J(rèn)下載最新版的鏡像)
[root@localhost ~]# docker push 倉(cāng)庫(kù)名稱/倉(cāng)庫(kù)賬號(hào)/鏡像名稱 //上傳鏡像
[root@localhost ~]# docker images //查詢本地下載的所有鏡像
[root@localhost ~]# docker images 鏡像名稱 //查詢指定的鏡像
[root@localhost ~]# docker inspect 容器名稱或容器ID //查詢鏡像的詳細(xì)信息
[root@localhost ~]# docker tag 原本的鏡像名稱及標(biāo)簽 生成以后的鏡像名稱及標(biāo)簽 //為本地鏡像起一個(gè)新的名稱、標(biāo)簽(源鏡像還存在)
[root@localhost ~]# docker rmi 鏡像名或鏡像ID //刪除本地鏡像
[root@localhost ~]# docker rmi 鏡像名或鏡像ID //強(qiáng)制刪除本地鏡像
//注意:強(qiáng)制的這種方式適用于有容器正在使用這個(gè)鏡像
//這種方式容器如果在運(yùn)行時(shí)也是無法刪除的,容器停止后刪除的話,容器依然可以使用
[root@localhost ~]# docker save > 通過鏡像生成的文件 鏡像名稱
[root@localhost ~]# docker save -o 通過鏡像生成的文件 鏡像名稱 //通過鏡像生成新的鏡像文件
[root@localhost ~]# docker load < 鏡像文件
[root@localhost ~]# docker load –i 鏡像文件 //將本地的鏡像文件生成為鏡像
//建議:“>”和“<”號(hào)成對(duì)使用、“i”和“o”成對(duì)使用
[root@localhost ~]# docker history 鏡像名稱
//查看生成鏡像執(zhí)行的歷史命令
二、docker容器操作基礎(chǔ)命令
[root@localhost ~]# docker create -it –name 容器名稱 使用的鏡像 /bin/bash
//使用指定的鏡像生成一個(gè)容器,并指定一個(gè)shell
常用選項(xiàng)解釋如下:
-i:采用交互式的方式;
-t:分配一個(gè)偽終端;
-d:后臺(tái)運(yùn)行;
–name:指定容器名稱
–restart=always:始終保持容器運(yùn)行(隨著docker的啟動(dòng)而啟動(dòng))
[root@localhost ~]# docker ps //查詢本機(jī)正在運(yùn)行的容器
[root@localhost ~]# docker ps -a //查詢本機(jī)所有的容器,不管容器是否在運(yùn)行
[root@localhost ~]# docker start 容器名稱或容器ID //啟動(dòng)容器
[root@localhost ~]# docker stop 容器名稱或容器ID //停止容器
[root@localhost ~]# docker restart 容器名稱或容器ID //重新啟動(dòng)容器
[root@localhost ~]# docker exec -it 容器名稱或容器ID /bin/bash //進(jìn)入容器并分配一個(gè)可用的shell
[root@localhost ~]# docker attach dhcp //也是進(jìn)入容器
//如果是attach進(jìn)入容器,使用exit退出的話這個(gè)容器也會(huì)關(guān)閉。
//使用ctrl p ctrl q退出容器,并不會(huì)關(guān)閉這個(gè)容器,會(huì)保持容器的運(yùn)行狀態(tài)。
[root@localhost ~]# docker cp docker宿主機(jī)文件 docker容器的目錄 //從本地上傳文件到容器中
[root@localhost ~]# docker cp docker容器名稱:文件 docker宿主機(jī)文件 //將容器中的文件下載到本地
[root@localhost ~]# docker commit 容器名稱 鏡像名稱及標(biāo)簽
//通過容器生成鏡像
[root@localhost ~]# docker run -itd –name registry –restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2
//-p:端口映射(前面是宿主機(jī)端口:后面是容器暴露的端口)
//-v:掛載目錄(前面是宿主機(jī)的目錄:后面的是容器的目錄)自動(dòng)創(chuàng)建宿主機(jī)的目錄
[root@localhost ~]# docker run -itd –name nginx 192.168.1.1:5000/centos:nginx nginx -g "daemon off;"
//創(chuàng)建容器,不進(jìn)入容器即開啟容器中的服務(wù)
[root@localhost ~]# docker logs 容器名稱會(huì)容器ID
//查看容器的日志,可以在后面加“-f”選項(xiàng),動(dòng)態(tài)輸出
//如果沒有內(nèi)容輸出則表示容器正常沒有錯(cuò)誤
[root@localhost ~]# docker inspect 容器名稱
//查看容器的詳細(xì)信息
exec和attach兩者的區(qū)別:
使用exec的方式進(jìn)入容器,使用“exit”的方式退出容器后容器并不會(huì)停止;
使用attach的方式進(jìn)入容器,使用“exit”的方式退出容器后容器便會(huì)停止;可以使用Ctrl p 或者 Ctrl q 組合鍵的方式退出容器后,并不會(huì)關(guān)閉這個(gè)容器;
exec方式:進(jìn)入容器是會(huì)產(chǎn)生新的進(jìn)程;
attach方式:進(jìn)入容器不會(huì)產(chǎn)生新的進(jìn)程;
以下方式生產(chǎn)環(huán)境不建議使用:
[root@localhost ~]# docker ps -a -q | xargs docker start //啟動(dòng)本機(jī)所有容器
[root@localhost ~]# docker ps -a -q | xargs docker stop //停止本機(jī)所有容器
[root@localhost ~]# docker ps -a -q | xargs docker restart //重新啟動(dòng)本機(jī)所有容器[root@localhost ~]# docker pa -a -q | xargs docker rm -f //刪除所有容器,相當(dāng)于“rm -rf /*”
[root@localhost ~]# docker rm 容器名稱或容器ID //刪除容器(容器是停止的狀態(tài))
[root@localhost ~]# docker rm 容器名稱或容器ID -f //強(qiáng)制刪除容器(容器是運(yùn)行的狀態(tài))
三、docker Swarm群集常用命令
[root@node02 ~]# docker swarm leave
//那個(gè)節(jié)點(diǎn)想推出swarm群集,就在那臺(tái)節(jié)點(diǎn)上執(zhí)行這條命令
//節(jié)點(diǎn)自動(dòng)退出swarm群集(相當(dāng)于辭職)
[root@node01 ~]# docker node rm 節(jié)點(diǎn)名稱
//由manager主動(dòng)刪除節(jié)點(diǎn)(相當(dāng)于開除)
[root@node01 ~]# docker node promote 節(jié)點(diǎn)名稱
//將節(jié)點(diǎn)升級(jí)
[root@node01 ~]# docker node demote 節(jié)點(diǎn)名稱
//將節(jié)點(diǎn)降級(jí)
[root@node01 ~]# docker node ls
//查看swarm群集的信息(只可以在manager角色的主機(jī)上查看)
[root@node01 ~]# docker node update –availability drain 節(jié)點(diǎn)名稱
//調(diào)整節(jié)點(diǎn)不參加工作
[root@node01 ~]# docker swarm join-token worker
//查看加入swarm群集的令牌(可以是worker也可以是manager)
[root@node01 ~]# docker service scale web=4
//擴(kuò)容、收縮swarn群集servie的數(shù)量(取決與群集原本的數(shù)量)
//比原本群集數(shù)量多,就是擴(kuò)容,反之、收縮
[root@node01 ~]# docker service ls
//查看創(chuàng)建的service
[root@node01 ~]# docker service ps service的名稱
//查看創(chuàng)建的service運(yùn)行在那些容器上
[root@node01 ~]# docker service create –replicas 6 –name web -p 80:80 nginx
//指定運(yùn)行的service副本數(shù)量
[root@node01 ~]# docker service create –replicas 3 –constraint node.hostname==node03 –name test nginx
//指定node節(jié)點(diǎn),創(chuàng)建名為test的容器
[root@node01 ~]# docker node update –label-add mem=max node02
//以鍵值對(duì)的方式給docker02主機(jī)打上標(biāo)簽“mem=max”,等號(hào)兩邊的內(nèi)容是可以自定義的
[root@node01 ~]# docker service create –name test1 –replicas 3 –constraint \\\’node.labels.mem==max\\\’ nginx
//基于nginx鏡像在標(biāo)簽為“mem==max”的主機(jī)上運(yùn)行3個(gè)名為test1的服務(wù)
[root@node01 ~]# docker node inspect node02
//標(biāo)簽相關(guān)的信息,在Spec{ }中有顯示
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問題,請(qǐng)?jiān)L問西部數(shù)碼官網(wǎng):www.ps-sw.cn