Docker实用指令整理
生活随笔
收集整理的這篇文章主要介紹了
Docker实用指令整理
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、docker幫助命令:
docker version --顯示版本的信息docker info --顯示系統(tǒng)及容器的信息docker --help --幫助命令2、鏡像命令:
docker images --查看本機所有的鏡像命令可選項:--filter=STARS=3000 --過濾STARS大于3000的鏡像docker images --filter=stars=3000docker search 鏡像名 --從倉庫中搜索鏡像名docker pull 鏡像名:版本 --從倉庫中下載指定的鏡像版本docker rmi -f 鏡像名:版本或鏡像ID --刪除鏡像docker rmi -f $(docker images -aq) --刪除所有的鏡像docker images -qa --將所有的鏡像ID顯示出來docker ps -qa --將所有的容器ID顯示出來3、容器命令:【先有鏡像,才有創(chuàng)建容器】
docker run [option]IMAGE[COMMAND][ARG...]說明:option,設(shè)置項;COMMAND 以什么命令形式啟動,鏡像一般都有,所以不用特殊指定。--option--name="name" 擬定一個容器名字-d 后臺運行,如果不加這個參數(shù),docker容器啟動后不能退出[這里的退出指定的是:docker run 鏡像名的界面不能退出],否則就會終止;-it 使用交互方式運行,進入容器查看內(nèi)容-p 指定容器端口 主機端口:容器端口(常用)-P 隨機端口--restart=always 開機自啟,如果不加這個參數(shù),系統(tǒng)重啟后,運行的容器都會停止。例子:啟動并執(zhí)行一個鏡像docker run --name="容器名" -it 鏡像名或鏡像ID /bin/bash[docker run -it 容器名 /bin/bash:該命令的-it是交互方式進行的,也就是能夠在宿主機跟容器中來回切換。如果不加,容器一運行就停止;/bin/bash:該命令是執(zhí)行進入容器中。如果不可加這個,進入容器需要執(zhí)行:docker exec/attach 容器名或容器ID才能進入容器/bin/bash ----是運行命令 如果不加這個,不能進入容器中]docker update 容器名/ID --restart=always 更新容器開機自啟[update不能更新端口映射,容器啟動的時候是在Linux的內(nèi)網(wǎng)中,如果外網(wǎng)/公網(wǎng)需要訪問容器的服務(wù),需要將公網(wǎng)的端口映射內(nèi)網(wǎng)的容器端口中]注意:進入當(dāng)前正在運行的容器【通常容器都是使用后臺方式運行的,有時需要進入容器,修改一些配置】docker exec -it 容器名或容器ID /bin/bashdocker attach 容器名或容器ID查看運行的容器命令:docker ps 查看所有正在運行的容器docker ps -a 查看所有歷史運行的容器docker ps -n=? 顯示最近運行過的幾個命令docker ps -qa 顯示容器所有的ID退出容器命令:exit:直接退出并停止ctrl+P+Q:退出容器不停止刪除容器:docker rm 容器ID或容器名 【不能刪除正在啟動的容器,如果要強制一個刪除一個容器,如果加-f】docker rm -f $(docker ps -aq) 遞歸刪除容器docker ps -aq | xargs docker rm 遞歸刪除容器停止容器:docker stop 容器名或容器ID 停止正在運行的容器docker kill 容器名或容器ID 殺死正在鏡像的容器進行docker start 容器名或容器ID 啟動一個容器查看容器內(nèi)部的元素信息命令:docker inspect 例子:docker inspect 9252bd718b306d4、查看docker日志命令:
docker logs 容器名docker logs --helpdocker logs -t -f --tail n 容器名或容器ID 顯示容器多少條日志,注意加了tail參數(shù),必須要指定條數(shù)5、查看容器內(nèi)部的進程命令:
docker top 容器名或容器ID6、commit[將正在運行的容器提交成一個新的鏡像]
語法:docker commit [options] CONTAINER [REPOSITY[:TAG]]docker commit 容器ID 提交一個容器作為新的鏡像例子:docker commit -a="FengYu" -m="add webapps app" 容器ID 鏡像名:版本參數(shù)說明:-a 是作者;-m是描述7、卷掛載【本機目錄與容器內(nèi)的目錄同步】
docker run -it -p 8081:8081 -p 8082:8082 -v /usr/local/tomcat/bin1:/usr/local/tomcat11/bin -v /usr/local/tomcat/webapps1:/usr/local/tomcat11/webapps/sguap-server -v /usr/local/tomcat/bin2:/usr/local/tomcat22/bin -v /usr/local/tomcat/webapps2:/usr/local/tomcat22/webapps:ro mytomcat-cx:1.0 /bin/bashro:表示容器內(nèi)的目錄只能讀;rw:表示容器內(nèi)的目錄可以讀寫。注意:卷掛載強調(diào)的是目錄與目錄的同步。不需要指定到目錄下的某一個文件,當(dāng)然可以指定到某一個文件。卷掛載的容器不能作為鏡像提交。容器數(shù)據(jù)卷:容器跟容器同步--volumes-from子容器 --volumes-from 父容器docker run -it --name cs01 鏡像名:版本/鏡像IDdocker run -it --name cs02 --volumes-from cs01 鏡像名:版本/鏡像IDcs01跟cs02是容器8、CMD跟ENTRYPOINT的區(qū)別:
CMD指定容器啟動時要運行的命令,只有最后一個有效,可被代替,指的是在追加命令的情況下ENTRYPOINT指定這個容器啟動的時候要進行運行的命令,可以追加。CMD ["ls","-a"]指令篇:
1、刪除鏡像:
docker rmi 鏡像名 :版本號docker search 鏡像名下載鏡像docker pull 鏡像名發(fā)布鏡像docker push 鏡像名---下載及發(fā)布鏡像是針對鏡像倉庫而言的2、刪除容器
docker rm 容器IDdocker rm -f 容器ID [強制刪除正在運行的容器]3、運行容器
docker run [option] 鏡像名:版本號(容器ID)/bin/bashoption:--name:給容器取個名字-a:作者-d:后臺運行-p:暴露外網(wǎng)端口-P:隨機端口-v:掛載卷4、給鏡像打標(biāo)記
docker tag 作者/鏡像名:版本5、進入容器
docker exec --會啟動一個新的容器docker attach --不會啟動一個新的容器CP拷貝命令:----------- docker cp 容器內(nèi)的文件 宿主機指定目錄下;docker cp 宿主機指定目錄下 容器內(nèi)的文件;如:docker /home/nginx.conf 58355eab288e:/etc/nginx/nginx.confdocker cp 容器ID:容器文件 宿主機目錄下cp是從容器內(nèi)將文件拷貝到宿主機指定的目錄下;從宿主機將容器拷貝到容器內(nèi)用卷命令。例子:將容器(ID58355eab288e)中一個test文件拷貝到宿主機上home目錄下docker cp 58355eab288e:/home/test /home6、指定端口訪問地址
docker run -d -it --name tomcat -p 9000:8080 tomcat-jdk-imagesdocker stats 查看內(nèi)存使用情況docker run -e 系統(tǒng)簡稱名_JAVA_OPTS=“-Xms64m -Xms512m”鏡像名【-e 參數(shù)是設(shè)置環(huán)境變量的】7、用完就刪的鏡像指令
docker run -it --rm tomcat 【該命令一般用于測試】8、將自己制作的鏡像打包
docker save -o 鏡像名.tar 鏡像名:標(biāo)簽9、將自己的鏡像導(dǎo)入系統(tǒng)中
docker load -i 鏡像名.tar10、swarm
1、集群的管理和編號。docker可以初始化一個swarm,其他節(jié)點加入(工作者、管理者);2、Node就是一個docker節(jié)點,多個節(jié)點就組成可一個網(wǎng)絡(luò)集群。(管理、工作者)3、service任務(wù),可以在管理節(jié)點或者工作節(jié)點來運行。核心!用戶訪問!4、task 容器內(nèi)的命令,細節(jié)。------------docker swarm --helpdocker swarm init --初始化一個集群節(jié)點(主節(jié)點,后面的worker跟manager節(jié)點都是在其之下)docker swarm init --help 查看初始命令-----------------------------------------docker swarm init --advertise-add ip --初始化一個集群并添加IP(IP有公網(wǎng)跟私網(wǎng),私網(wǎng)是對內(nèi)的,不需要前,公網(wǎng)是對外的,需要錢)。通過改命令,可以獲取令牌,選擇需要添加的是worker還是manager節(jié)點。docker swarm join-token worker --向集群中添加一個工作節(jié)點(敲入該指令可以生成需要添加到集群的工作節(jié)點命令)docker swarm join-token manager --向集群中添加一個管理節(jié)點(敲入該指令可以生成需要添加到集群的管理節(jié)點命令)-------------------------------------------docker swarm leave --將管理節(jié)點或工作節(jié)點脫離集群docker swarm update --更新一個集群-------------------------------------------docker node ls --查看節(jié)點信息11、Raft協(xié)議
雙主雙從節(jié)點:manager and workerRaft協(xié)議:保證大多數(shù)節(jié)點存活才可以用。普通的manager至少>1臺,集群至少3臺。12、systemctl stop docker 停止docker容器
13、docker service --help
create --創(chuàng)建一個新的服務(wù)docker service create --help --查看幫助docker service create -p 8080:80 --name my-nginx nginx --這里的nginx是鏡像inspect --展示服務(wù)的詳細信息 docker service inspect my-nginxlogs --查看服務(wù)或副本的日志docker logs 容器名/容器ID [查看容器運行錯誤日志]ls --展示服務(wù)列表docker service ls --查看服務(wù)列表ps --展示一個或多個服務(wù)的副本狀態(tài)docker service ps my-nginx --查看副本列表rm --移除一個或多個服務(wù)rollback --取消服務(wù)配置,還原初始設(shè)置scale --擴縮一個或多個副本服務(wù)docker service scale --help --查看幫助docker service scale my-nginx=5 動態(tài)擴展5個副本update --更新一個服務(wù)docker service update --help --查看幫助docker service update --replicas 3 my-nginx調(diào)整service以什么方式運行:--mode replicated docker service create --mode replicated --name mytom tomcat:7 -- 默認(rèn)的,在副本節(jié)點運行--mode globaldocker service create --mode global--name mytom tomcat:7 --全局的,在任何節(jié)點都可以運行14、灰度發(fā)布:平滑升級項目,不用中斷項目,停止服務(wù)。
docker run 容器啟動!不具有擴縮容器docker service 服務(wù)!具有擴縮容器,滾動更新!命令->管理->api->調(diào)度->工作節(jié)點 (創(chuàng)建task容器、維護創(chuàng)建!)kubectl service api--wordpress 博客15、docker stack --集群啟動
docker compose --單機啟動----docker secret --安全docker config --配置16、Linux 、docker、k8s(適合10臺以上的服務(wù)器)
Go語言(由B語言、C語言、unix跟谷歌V8引擎組合而成)---------Docker、K8S、Etcd(存儲)是Go開發(fā)的。總結(jié)
以上是生活随笔為你收集整理的Docker实用指令整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bzoj3991 [SDOI2015]寻
- 下一篇: 如何在DPDK盒子上使用TRex