Docker常用命令總結
|
幫助命令
|
|
|
docker 命令 --help
|
幫助命令
|
|
鏡像命令
|
|
|
docker version
|
顯示docker的版本信息
|
|
docker login -u + dockerhub用戶名
|
登錄dockerhub遠程倉庫
|
|
docker logout
|
退出登錄
|
|
docker info
|
顯示docker的系統信息,包括鏡像和容器數量等
|
|
docker images
|
查看所有本地主機上的鏡像
|
|
docker images -a
|
查看所有本地主機上的鏡像
|
|
docker images -q
|
只顯示鏡像的id
|
|
docker images -aq
|
列出所有鏡像的id
|
|
docker search + 鏡像名(mysql nginx)
|
搜索鏡像
|
|
docker search --filter
|
過濾搜索鏡像
|
|
docker search --filter=STARS=3000
|
搜索出STARS大于3000的mysql鏡像
|
|
docker pull + 鏡像名(mysql nginx)
|
下載鏡像,默認下載最新版本
|
|
docker pull + 鏡像名:版本號
|
下載鏡像,指定版本
|
|
docker rmi -f + 鏡像id
|
刪除鏡像
|
|
docker rmi -f + 鏡像id1 鏡像id2 鏡像id3
|
刪除多個鏡像
|
|
docker rmi -f $(docker images -aq)
|
刪除所有鏡像
|
|
docker build -f + 文件名 + -t + 鏡像名:版本號+ .
|
自定義鏡像,構建Dockerfile文件,注意最后加一個.
-f 說明當前是哪個文件需要構建。如果文件名為Dockerfile
,就可以不用-f來指定
|
|
提交鏡像到遠程倉庫的步驟:1.docker commit 2.docker tag 3.docker push
2和3也可以一步完成!
|
|
|
docker commit -m="提交的描述信息" -a="作者" 容器id 目標鏡像名(自己命名):【TAG】(自己命名)
|
提交鏡像
|
|
docker tag +鏡像id +dockerhub用戶名/自定義鏡像名:tag
|
重命名鏡像-----docker
比如:docker tag e77b61ff8ac3 xxx1361/tomcat:1.0
|
|
docker push + docker tag重命名后的鏡像名和版本號
|
push鏡像到dockerhub,使用經過docker tag重命名后的鏡像
比如:docker push xxx1361/tomcat:1.0
|
|
docker push + dockerhub用戶名/自定義鏡像名:【tag】自定義版本號
|
push鏡像到dockerhub,未使用經過docker tag重命名后的鏡像
|
|
docker tag + 鏡像id+阿里云鏡像服務新建倉庫時生成的目錄:版本號
|
重命名鏡像-----aliyun
比如:docker tag e77b6ff8ac3 registry.cn-hangzhou.aliyuncs.com/test/tomcat-test:2.0
|
|
docker push + tag重命名后的鏡像名和版本號
|
push到阿里云鏡像倉庫,使用經過docker tag重命名后的鏡像,比如:docker push registry.cn-hangzhou.aliyuncs.com/test/tomcat-test:2.0
|
|
docker push + 鏡像id +鏡像目錄(每次創建鏡像倉庫,阿里云生成的目錄):【tag】自定義版本號
|
push到阿里云鏡像倉庫,未使用經過docker tag重命名后的鏡像
|
|
docker pull + tag重命名后的鏡像名和版本號(docker images查看)
|
docker pull registry.cn-hangzhou.aliyuncs.com/test/tomcat-test:2.0
|
|
容器命令 有了鏡像才可以創建容器
|
|
|
docker create + 鏡像名
|
新建容器,不啟動
|
|
docker run 【可選項】+ 鏡像名
|
新建容器并啟動
|
|
docker run --name nginx01 -p 2233:80 nginx
|
啟動多個容器時,使用--name進行區分容器,2233表示可以通過2233端口訪問docker中nginx的80端口中的內容
|
|
docker run -d + 鏡像名
|
以后臺方式運行
|
|
docker run -it + 鏡像名
|
使用交互方式運行,可進入容器查看內容
|
|
docker run -p 主機端口:容器端口 + 鏡像名
|
指定容器的端口
|
|
docker run -P + 鏡像名
|
隨機指定端口
|
|
docker run -it centos /bin/bash
|
以交互方式創建并啟動主機名為centos的容器
|
|
docker ps
|
列出當前正在運行的容器
|
|
docker ps -a
|
列出當前正在運行的容器+歷史運行過的容器
|
|
docker ps -n=?
|
列出最近運行的幾個容器
|
|
docker ps -q
|
顯示所有正在運行的容器的id
|
|
docker ps -aq
|
列出所有容器的id,包括未運行和運行過的容器
|
|
exit
|
退出容器,容器停止
|
|
Ctrl+P+Q
|
退出容器,容器不停止
|
|
docker rm 容器id
|
刪除指定的容器,不能刪除正在運行的容器,可以使用rm -f強制刪除
|
|
docker rm -f $(docker ps -aq)
|
強制刪除所有容器
|
|
docker diff + 容器id
|
查看容器變化
|
|
docker start + 容器id
|
啟動容器
|
|
docker restart + 容器id
|
重啟容器
|
|
docker stop + 容器id
|
停止當前正在運行的容器
|
|
docker kill + 容器id
|
強制停止當前容器,如果docker stop失敗時可以使用docker kill
|
|
docker pause + 容器id
|
暫停容器
|
|
docker unpause + 容器id
|
取消暫停容器
|
|
docker logs
|
打印日志
|
|
docker logs -tf
|
查看包含時間戳和輸出內容在內的日志信息
|
|
docker logs -tail +條數
|
查看指定條數的日志信息
|
|
docker top + 容器id
|
查看容器中的進程信息
|
|
docker inspect + 容器id
|
查看鏡像元數據
|
|
docker exec -it + 容器id /bin/bash
|
方式1:進入已運行的容器。進入容器后開啟另一個新的終端,可以在里面操作【常用】
|
|
docker attach + 容器id
|
方式2:進入已運行的容器。進入正在執行的終端,不會啟動新的進程
|
|
ps -ef
|
查看容器中運行的進程,進入運行的容器后,在容器中使用
|
|
touch+ 文件名.文件類型
|
創建文件
|
|
docker cp + 容器id:容器內路徑 目的主機路徑
|
從容器中拷貝文件到主機上
|
|
curl+地址:端口號
|
用于測試訪問服務
|
|
docker stats
|
查看CPU的狀態
|
|
docker volume ls
|
查看所有卷
|
|
docker history + 鏡像id
|
查看鏡像的構建過程
|
|
數據卷掛載
|
|
|
docker run -it -v 宿主機目錄:容器內目錄
|
指定路徑掛載
|
|
docker run -d -v + 數據卷名:容器內路徑
|
具名掛載
|
|
docker run -d -v + 容器內路徑
|
匿名掛載
|
|
VOLUME ["自定義名字","自定義名字
","自定義名字"]
|
通過dockerfile文件自動掛載,掛載目錄自動生成
|
|
docker volume ls
|
查看所有卷
|
|
docker volume inspect + 數據卷名
|
查看數據卷的詳細信息。包括卷掛載的目錄等。
|
|
所有的docker容器內的卷,沒有指定目錄的情況下,都是在/var/lib/docker/volumes/卷名/_data下
|
|
|
docker run -e
|
配置密碼
比如:docker run -d -p 3300:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:8.0
|
|
數據卷容器--------實現容器內的卷數據同步,前提是容器內有兩個數據卷
|
|
|
docker run -it --name=docker02 --volumes-from docker01 + 鏡像id
|
啟動并將docker02掛載到docker01
|
|
docker網絡
|
|
|
docker network ls
|
查看所有的網絡
|
|
docker --link
|
容器互聯 (不建議使用)
比如:docker run -d -P --name tomcat02 --link tomcat01 tomcat,這樣tomcat02就可以ping通tomcat01
|
|
docker --net
|
指定網絡模式,默認是bridge ,對應網橋為docker0
docker run -d -P --name tomcat01 --net host tomcat
|
|
docker network create + 配置信息 + 網絡名
|
自定義網絡
比如:docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
|
|
docker network connect + 網絡名 + 容器名
|
網絡連通
連接一個容器到網絡,一個容器兩個ip地址;就好比阿里云服務器:公網IP、私網IP
|
|
apt update
|
更新軟件命令
|
|
apt install -y iproute2
|
安裝iproute2工具包
iproute2包含了ifconfig、arp、route、netstat等命令
|
|
apt install -y iputils-ping
|
安裝ping命令
|
|
容器編排(docker-compose )
|
|
|
docker-compose up
|
前臺啟動compose
|
|
docker-compose up -d
|
后臺啟動compose
|
|
docker-compose up --build
|
構建并啟動compose
|
|
docker-compose down Ctrl+C
|
停止compose
|
|
集群的管理和編排(docker-swarm)
|
|
|
yum install -y gcc
|
在服務器進行同步操作。
集群時,先執行這個命令,就可以同時在幾臺服務器上安裝工具
|
|
docker swarm init --advertise-addr + 地址
|
生成主節點,初始化節點
|
|
docker swarm join-token manager
|
獲取/生成manager(主)令牌
|
|
docker swarm join-token worker
|
獲取/生成worker(從)令牌
|
|
docker swarm join --token + 令牌
|
加入節點
|
|
docker node ls
|
查看節點
|
|
docker swarm leave
|
離開集群
|
|
docker service --help
|
查看服務的幫助命令
|
|
docker service create -p 宿主機端口:容器端口 --name + 自定義服務name + 鏡像名
|
啟動服務
|
|
docker service ps + 服務名
|
查看正在運行的服務
|
|
docker service inspect + 服務名
|
查看服務的詳細信息
|
|
docker service update --replicas + 數量 + 服務名
|
服務擴縮容
|
|
docker service scale 服務名=數量
|
|
|
docker service rm + 服務名
|
移除服務
|
|
docker service create --mode replicated --name + 服務名 鏡像:tag
|
服務以副本服務的方式運行,默認是replicated
|
|
docker service create --mode global --name + 服務名 鏡像:tag
|
服務以全局服務的方式運行
|
本文來自博客園,作者:{jkal},轉載請注明原文鏈接:http://www.rzrgm.cn/jkal/p/16672550.html

浙公網安備 33010602011771號