Docker學習之路 —— Docker常用命令
- 1. Docker系統級命令
- 2. Docker鏡像命令
- 3. Docker容器命令
- 4. Docker網路
- 5. Docker其它常用命令
- 6. 命令練習一(Nginx)
- ① 搜索nginx(為了確認nginx在docker倉庫中是否存在)
- ② 安裝nginx鏡像
- ③ 后臺運行nginx鏡像生成容器,容器命名為nginx01,
- ④ 進入nginx容器
- ⑤ 退出容器
- ⑥ 關閉nginx容器
- ⑦ 洗掉容器
- ⑧ 洗掉nginx鏡像
- 7. 命令練習二(Tomcat9.0,測驗,容器退出即刪)
- ① 直接運行tomcat鏡像,容器退出即洗掉,鏡像會保留通用部分層,需要手動洗掉鏡像,一般用于測驗使用,
- ② 注意問題
1. Docker系統級命令
## 啟動/重啟Docker
systemctl start/restart docker
service docker start/restart
## 關閉Docker
systemctl stop docker
service docker stop
## Docker版本資訊
docker version
## Docker更詳細的資訊,包括版本資訊
docker info
## 幫助資訊
docker help
docker COMMAND --help
2. Docker鏡像命令
## 查看所有本地主機上的所有鏡像
## --all / -a:顯示所有鏡像
## --quiet / -q: 只顯示鏡像ID
docker images
## Docker在倉庫中搜索鏡像
## --filter / -f:過濾查詢:-f=STARS=3000
docker search [OPTIONS] 鏡像名稱
## 下載鏡像
## -a:下載所有版本鏡像
## :TAG:指定版本,若不指定,則下載latest最新版本,
docker pull [OPTIONS] 鏡像名稱[:TAG]
## 洗掉鏡像 除(多個鏡像使用空格分割)
## -f:強制洗掉
## 根據鏡像ID刪
docker rmi -f 鏡像ID1 鏡像ID2
## 根據鏡像名稱加版本洗掉
docker rmi -f 鏡像名稱:版本(默認latest)
## 洗掉所有鏡像(騷操作)
docker rmi -f $(docker images -aq)
## 從容器創建一個新鏡像
## -a="作者"
## -m="描述"
## -p:暫停運行容器后再提交
## -c:使用Dockerfile指令來創建鏡像
docker commit [OPTIONS] 容器ID 鏡像名稱:TAG
## 將指定鏡像保存成 tar 歸檔檔案
docker save -o tar檔案路徑
## 匯入使用 docker save 命令匯出的鏡像
docker load -i tar檔案路徑
## 查看鏡像構建歷史
docker history 鏡像ID/鏡像名稱:TAG
3. Docker容器命令
## 運行鏡像為容器
## --name="唯一別名":容器命名,用于區分容器
## -d:后臺方式運行,相當于nohup,問題:docker容器沒有前臺行程執行,會自行退出,所以可以配合-it使用
## -it:使用互動方式運行,并且進入容器查看資訊
## --rm:容器退出后自動洗掉(一般用于測驗)
## -p: 主機埠:容器埠:宿主機埠映射容器埠,訪問宿主機埠即可,
## -p:容器埠:指定容器埠
## -P:隨機埠
## -v:宿主機目錄:容器目錄:權限 鏡像ID/名稱:資料卷指定路徑掛載
## -v:卷名:容器目錄:權限 鏡像ID/名稱:資料卷具名名掛載(/var/lib/docker/volumes/卷名)
## -v:容器目錄:權限 鏡像ID/名稱:資料卷匿名掛載
## --volumes-from:容器ID/容器名稱:繼承容器的資料卷(可多個)
## -e:配置容器引數,例如Java程式:-e JAVA_OPTS="-Xms=64m,-Xmx=512m"
## --link:使前面的容器可以ping通后面的容器(反向則不行),例如:tomcat01 --link tomcat02
docker run [OPTIONS] 鏡像名稱
## 容器停止并退出
exit
## 容器不停止并退出
Ctrl + P + Q
## 查看運行中的容器
## -a:可以查看所有容器(包括歷史容器和運行中的容器)
## -n=數字:顯示多少條容器
## -q:只顯示容器ID
docker ps [OPTIONS]
## 查看容器資源占用情況
## 查看所有容器的資源占用
docker stats
## 查看指定容器的資源占用
docker stats 容器ID
## 查看容器中的行程資訊
docker top 容器ID
## 查看容器的元資料
docker inspect 容器ID
## 查看容器資料卷的元資料
docker volumes inspect 資料卷ID/資料卷名稱
## 進入正在運行的容器
## 方式一:進入容器并打開新的終端(常用)
docker exce -it 容器ID
## 方式二:進入容器并打開正在運行的終端
docker attach 容器ID
## 將容器內檔案復制到宿主機
docker cp 容器ID:容器內路徑 宿主機路徑
## 洗掉容器
## -f:強制洗掉
## 根據容器ID洗掉(不能洗掉運行中的,需要加-f引數)
docker rm [OPTIONS] 容器ID
## 洗掉所有容器(不能洗掉運行中的,需要加-f引數)
docker rm [OPTIONS] $(docker ps -aq)
## 啟動/重啟容器
docker start 容器ID
docker restart 容器ID
## 停止容器
docker stop 容器ID
## 強制停止容器
docker kill 容器ID
4. Docker網路
## 將容器連接到網路
docker network connect [OPTIONS] 網路名稱 容器ID/容器名稱
## 創建新的Docker網路,默認情況下,在Windows上會采用NAT驅動,在Linux 上會采用Bridge 驅動,可以使用 -d 引數指定驅動(網路型別),
docker network create
## 斷開容器的網路
docker network disconnect 容器ID
## 列出Docker主機上的所有Docker網路
docker network ls
## 洗掉Docker主機上所有未使用的網路
docker network prune
## 洗掉Docker的指定網路
docker network rm
5. Docker其它常用命令
## 查看日志
## -t: 顯示時間戳
## -f: 跟隨列印日志
## --tail 行數:顯示多少行
docker logs [OPTIONS] 容器ID
## 登錄
docker login 倉庫地址(不指定,則默認https://registry.hub.docker.com/) -u 用戶名 -p 密碼
## 退出登錄
docker logout 倉庫地址(不指定,則默認https://registry.hub.docker.com/)
## 發布鏡像
docker push DockerHub的用戶名/鏡像ID
注: 關閉Docker時警告:Stopping docker.service, but it can still be activated by:docker.socket怎么解決?
原因分析:這是因為除了docker.service單元檔案,還有一個docker.socket單元檔案,docker.socket這是用于套接字激活,該警告意味著:如果你試圖連接到docker socket,而docker服務沒有運行,系統將自動啟動docker,
解決方法(關閉Docker socket):sudo systemctl stop docker.socket
建議:其實這是個挺人性化的設計,知道意思后,就不想采取什么干預了,
6. 命令練習一(Nginx)
① 搜索nginx(為了確認nginx在docker倉庫中是否存在)
docker search nginx
② 安裝nginx鏡像
docker pull nginx
③ 后臺運行nginx鏡像生成容器,容器命名為nginx01,
## 啟動后就可以訪問IP:8080,進入nginx首頁
docker run -d --name nginx01 -p:8080:80 鏡像ID/鏡像名稱:TAG
④ 進入nginx容器
docker exec -it nginx01 /bin/bash
⑤ 退出容器
## 退出容器
exit
⑥ 關閉nginx容器
docker stop 容器ID
## 或
docker kill 容器ID
⑦ 洗掉容器
docker rm 容器ID
⑧ 洗掉nginx鏡像
docker rmi -f 鏡像ID
## docker images存在image時,卻無法洗掉怎么辦?
cd /var/lib/docker/image/overlay2/imagedb/content/sha256
## 找到對應鏡像洗掉即可
rm -rf xxxxxx
7. 命令練習二(Tomcat9.0,測驗,容器退出即刪)
① 直接運行tomcat鏡像,容器退出即洗掉,鏡像會保留通用部分層,需要手動洗掉鏡像,一般用于測驗使用,
docker run -it --rm -p 3443:8080 tomcat:9.0
② 注意問題
因為tomcat是閹割過的,已經被壓榨到最小可用,所以訪問時報404,所以想要訪問到tomcat首頁,需要進入tomcat容器,或將webapps洗掉,并將webapps.dist改為webapps,或將webapps.dist內容復制到webapps目錄下,這樣就可以訪問到tomcat首頁了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/318210.html
標籤:其他
