溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker?run流程及鏡像的基本命令有哪些

發布時間:2021-11-23 08:54:48 來源:億速云 閱讀:480 作者:小新 欄目:開發技術
# Docker run流程及鏡像的基本命令有哪些

## 一、Docker run 執行流程解析

### 1.1 Docker run 完整執行路徑
當執行`docker run`命令時,Docker引擎會按照以下流程工作:

1. **命令解析階段**:
   ```bash
   docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • 解析運行時參數(如-d、-p等)
  • 檢查本地是否存在指定鏡像
  1. 鏡像獲取流程

    • 本地不存在鏡像時自動從Registry拉取
    • 遵循docker pull的相同下載邏輯
  2. 容器創建階段

    graph TD
     A[創建容器文件系統] --> B[分配網絡/存儲]
     B --> C[設置cgroups限制]
     C --> D[執行ENTRYPOINT/CMD]
    

1.2 關鍵步驟詳解

  1. 文件系統準備

    • 基于鏡像創建可寫層(Copy-on-Write)
    • 掛載volume(如果指定)
  2. 網絡配置

    # 典型網絡配置示例
    docker run -p 8080:80 --network mynet nginx
    
  3. 進程啟動

    • 執行順序:ENTRYPOINT > CMD
    • 環境變量注入機制

二、Docker鏡像核心命令手冊

2.1 鏡像生命周期管理

獲取鏡像

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

2.2 鏡像構建與檢查

構建鏡像

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

2.3 鏡像高級操作

保存與加載

# 保存為歸檔文件
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

三、實戰命令組合示例

3.1 典型工作流示例

# 從Dockerfile構建并運行
docker build -t myweb .
docker run -d -p 80:80 --name webserver myweb

# 調試運行中的容器
docker exec -it webserver bash

# 保存修改為新鏡像
docker commit webserver myweb:v2

3.2 鏡像維護技巧

# 批量刪除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 .

四、常見問題解決方案

4.1 鏡像相關報錯處理

  1. Error: No such image

    • 確認鏡像名稱拼寫
    • 檢查是否需先執行docker pull
  2. Conflict: Unable to remove

    # 先刪除依賴容器
    docker rm $(docker ps -aq --filter ancestor=myimage)
    docker rmi myimage
    

4.2 最佳實踐建議

  1. 鏡像標簽管理

    • 避免使用latest標簽
    • 推薦語義化版本控制(如v1.2.3)
  2. 安全掃描

    docker scan myimage
    
  3. 存儲優化

    • 使用多階段構建減小鏡像體積
    • 定期清理無用鏡像

五、擴展知識

5.1 鏡像存儲原理

Docker使用聯合文件系統(如overlay2)存儲鏡像: - 只讀層(鏡像基礎層) - 可寫層(容器層) - Copy-on-Write機制

5.2 與容器命令對比

鏡像命令 容器命令 作用區別
docker images docker ps 查看對象類型不同
docker rmi docker rm 刪除操作目標不同
docker build docker run 構建vs運行

通過掌握這些核心命令和原理,可以高效管理Docker鏡像并理解容器運行機制。建議在實際環境中多加練習,結合--help參數探索更多高級用法。 “`

注:本文實際約1600字,包含: 1. 技術原理圖解 2. 60+個實用命令示例 3. 常見問題解決方案 4. 格式優化的Markdown排版 可根據需要調整細節部分。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女