一、Docker 幫助指令
1. 幫助命令
- 功能:幫助命令
- 用法
# docker version #顯示docker的版本信息
# docker info #顯示docker的系統信息,包括鏡像和容器的數量
# docker --help #顯示幫助信息
二、Docker 鏡像指令
1. 查看鏡像
- 指令
docker images
- 功能:查看所有的鏡像
- 用法
# docker images
# 可選項
-a, --all # 列出所有的鏡像
-q, --quiet # 只顯示鏡像的id
-
案例
名稱 含義 REPOSITORY 鏡像的倉庫源 TAG 鏡像的標簽 IMAGE ID 鏡像的id CREATED 鏡像的創建時間 SIZE 鏡像的大小
2. 搜索鏡像
- 指令
docker search
- 功能:搜索鏡像
- 用法
# docker search 搜索鏡像
# 可選項,通過搜素過濾
--filter=STARS=3000 # 搜索鏡像的STARS值均大於3000
- 案例
這里的搜索和官網的搜索是一樣的,可以進入官網的搜索文檔中搜索自己需要的鏡像文件,搜索結果如下圖所示
3. 下載鏡像
- 指令
docker pull
- 功能:下載鏡像
- 用法
# docker pull 鏡像名[:tag]
# 如果不寫 tag,默認下載的是latest
- 案例
注意: docker pull mysql 等同於 docker pull docker.io/library/mysql:latest; 指定版本下載時,要和官網搜索的版本一致,如下圖所示
4. 刪除鏡像
- 指令
docker rmi
- 功能:刪除鏡像
- 用法
# docker rmi -f 鏡像id # 刪除指定鏡像
# docker rmi -f 鏡像id 鏡像id 鏡像id # 刪除多個鏡像
# docker rmi -f $(docker images -aq) # 刪除所有鏡像
- 案例
三、Docker 容器命令
1. 運行容器
- 指令
docker run
- 功能:運行容器
- 用法
# docker run [可選參數] image
--name="Name" 容器名字 如tomcat01、tomcat02、tomcat03, 用來區分容器
-d 后台運行方式
-it 使用交互方式運行,進入容器查看內容
-p 指定容器的端口 主要有四種運行模式,如:
-p ip:主機端口:容器端口
-p 主機端口:容器端口 (常用)
-p 容器端口
容器端口
-P 隨機端口
-e 環境配置
-v 卷掛載
- 案例
2. 退出容器
- 指令
exit
- 功能:退出容器
- 用法
# exit # 停止容器並退出
# Ctrl + P + Q # 容器不停止退出
- 案例
3. 查看運行容器
- 指令
docker ps
- 功能:列出所有的運行容器
- 用法
# docker ps
# 列出當前正在運行的容器
-a # 列出當前正在運行的容器+歷史運行過的容器
-n=? # 顯示最近創建的容器
-q # 只顯示容器的編號
- 案例
4. 刪除容器
- 指令
docker rm
- 功能:刪除容器
- 用法
# docker rm 容器id # 刪除指定的容器,不能刪除正在運行的容器,如果要強制刪除使用rm -f
# docker rm -f $(docker ps -aq) # 刪除所有容器
# docker ps -a -q|xargs docker rm # 刪除所有容器
- 案例
5. 啟動和停止容器
- 功能:啟動和停止容器
- 用法
# docker start 容器id # 啟動容器
# docker restart 容器id # 重啟容器
# docker stop 容器id # 停止當前正在運行的容器
# docker kill 容器id # 強制停止當前容器
四、Docker 其他命令
1. 后台啟動容器
- 指令
docker run
- 功能:后台啟動容器
- 用法
# 命令 docker run -d 鏡像名
- 案例
注意: docker ps,發現 ubuntu停止了,這是一個常見的坑。docke 容器使用后台運行時,需要有一個前台進程,docker發現沒有應用,就會自動停止,比如nginx容器啟動后,發現自己沒有提供服務,便會立即停止。
2. 查看日志
- 指令
docker logs
- 功能:后台啟動容器
- 用法
# docker logs -tf 容器id # 沒有發現日志
-tf # 顯示所有日志
--tail number # 指定顯示日志的數量
# 遇到沒有日志輸出的容器運行時,通過日志指令無法觀察現象,所以需要在容器中編譯一個打印日志的程序
# docker run -d ubuntu /bin/sh -c "while true;do echo test;sleep 1;done"
- 案例
3. 查看容器中進程信息
- 指令
docker top
- 功能:查看容器中進程信息
- 用法
# docker top 容器id
- 案例
4. 查看鏡像的元數據
- 指令
docker inspect
- 功能:查看鏡像的元數據
- 用法
# docker inspect 容器id
- 案例
5. 進入當前正在運行的容器
- 指令
docker exec
、docker attach
- 功能:進入當前正在運行的容器
- 用法
# docker exec -it 容器id bashShell # 進入容器后開啟一個新的終端,可以進行常規操作
# docker attach 容器id # 進入容器正在執行的終端,不會開啟新的進程。
- 案例
6. 從容器內拷貝文件到主機上
- 指令
docker cp
- 功能:從容器內拷貝文件到主機上
- 用法
# docker cp 容器id:容器內路徑 目的主機的路徑
- 案例
注意: 拷貝是一個手動過程,未來我們可以使用 -v 卷的技術,可以實現和主機同步
7. 從容器創建一個新的鏡像
- 指令
docker commit
- 功能:從容器創建一個新的鏡像
- 用法
# docker commit 容器id 鏡像名稱:版本號
# -a # 提交的鏡像作者
# -c # 使用Dockerfile指令來創建鏡像
# -m # 提交時的說明文字
# -p # 在commit時,將容器暫停
- 案例
8. 數據卷
- 指令
docker volume
- 功能: 管理卷
- 用法
# docker volume create edc-nginx-vol // 創建一個自定義容器卷
# docker volume ls // 查看所有容器卷
# docker volume inspect edc-nginx-vol // 查看指定容器卷詳情信息
# docker volume rm edc-nginx-vol // 刪除自定義數據卷
- 案例
參考文獻
Docker官方鏡像搜索網址:<hub.docker.com>
Docker最新超詳細版教程通俗易懂:https://www.bilibili.com/video/BV1og4y1q7M4?p=1