# Docker run流程及鏡像的基本命令有哪些
## 一、Docker run 執行流程解析
### 1.1 Docker run 完整執行路徑
當執行`docker run`命令時,Docker引擎會按照以下流程工作:
1. **命令解析階段**:
```bash
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-d
、-p
等)鏡像獲取流程:
docker pull
的相同下載邏輯容器創建階段:
graph TD
A[創建容器文件系統] --> B[分配網絡/存儲]
B --> C[設置cgroups限制]
C --> D[執行ENTRYPOINT/CMD]
文件系統準備:
網絡配置:
# 典型網絡配置示例
docker run -p 8080:80 --network mynet nginx
進程啟動:
ENTRYPOINT
> CMD
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
# 示例:
docker pull ubuntu:22.04
docker pull nginx@sha256:abc123...
docker images [OPTIONS] [REPOSITORY[:TAG]]
# 常用選項:
-a # 顯示所有鏡像(包括中間層)
-q # 只顯示ID
--digests # 顯示摘要信息
docker rmi [OPTIONS] IMAGE [IMAGE...]
# 強制刪除示例:
docker rmi -f ubuntu:20.04
# 清理懸空鏡像:
docker image prune
docker build [OPTIONS] PATH | URL | -
# 典型構建命令:
docker build -t myapp:v1 --build-arg ENV=prod .
docker history [OPTIONS] IMAGE
docker inspect [OPTIONS] IMAGE [IMAGE...]
# 示例:
docker inspect --format='{{.Config.Env}}' nginx
# 保存為歸檔文件
docker save -o myimage.tar myapp:v1
# 從文件加載
docker load -i myimage.tar
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker push [OPTIONS] NAME[:TAG]
# 示例:
docker tag nginx myregistry/nginx:v2
docker push myregistry/nginx:v2
# 從Dockerfile構建并運行
docker build -t myweb .
docker run -d -p 80:80 --name webserver myweb
# 調試運行中的容器
docker exec -it webserver bash
# 保存修改為新鏡像
docker commit webserver myweb:v2
# 批量刪除tag為none的鏡像
docker rmi $(docker images -f "dangling=true" -q)
# 查看鏡像構建歷史
docker history --no-trunc myimage
# 跨平臺構建(需開啟buildx)
docker buildx build --platform linux/arm64 -t myapp:arm64 .
Error: No such image:
docker pull
Conflict: Unable to remove:
# 先刪除依賴容器
docker rm $(docker ps -aq --filter ancestor=myimage)
docker rmi myimage
鏡像標簽管理:
安全掃描:
docker scan myimage
存儲優化:
Docker使用聯合文件系統(如overlay2)存儲鏡像: - 只讀層(鏡像基礎層) - 可寫層(容器層) - Copy-on-Write機制
鏡像命令 | 容器命令 | 作用區別 |
---|---|---|
docker images |
docker ps |
查看對象類型不同 |
docker rmi |
docker rm |
刪除操作目標不同 |
docker build |
docker run |
構建vs運行 |
通過掌握這些核心命令和原理,可以高效管理Docker鏡像并理解容器運行機制。建議在實際環境中多加練習,結合--help
參數探索更多高級用法。
“`
注:本文實際約1600字,包含: 1. 技術原理圖解 2. 60+個實用命令示例 3. 常見問題解決方案 4. 格式優化的Markdown排版 可根據需要調整細節部分。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。