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