引言
docker 的快速部署與高效運行依賴于兩大核心環節:基礎環境搭建與鏡像生態優化。本期博文從零開始,系統講解 docker 服務的管理配置與鏡像加速實踐。第一部分聚焦 docker 服務的安裝、權限控制與自啟動設置,確保環境穩定可用;第二部分深入 鏡像源的配置策略與故障排查,解決國內網絡環境下的鏡像拉取瓶頸。通過遵循本文指引,各位觀眾老爺將掌握 docker 環境初始化、權限管理及鏡像加速的全流程技能,為容器化開發運維構建高效、可靠的基礎平臺。
最后,如果大家喜歡我的創作風格,請大家多多關注up主,你們的支持就是我創作最大的動力!如果各位觀眾老爺覺得我哪些地方需要改進,請一定在評論區告訴我,馬上改!在此感謝大家了。
各位觀眾老爺,本文通俗易懂,快速熟悉Docker,收藏本文,關注up不迷路,后續將持續分享Docker純干貨(請觀眾老爺放心,絕對又干又通俗易懂)。請多多關注、收藏、評論,評論區等你~~~
文章目錄
- 引言
- 一、docker 服務安裝與基礎配置
- 1.1 啟動docker服務
- 1.1.1 初次啟動docker
- 1.1.2 設置開機自啟動
- 1.2 免 `sudo` 運行 docker 及驗證
- 1.2.1 添加 docker 用戶組( 可選,推薦!)
- 1.2.2 驗證是否生效
- 二、Docker 鏡像源配置與加速
- 2.1 鏡像源的作用與必要性
- 2.1.1 鏡像源是什么?有什么作用
- 2.1.2 為什么要修改默認鏡像源
- 2.2 配置鏡像源
- 2.2.1 準備工作
- 2.2.2 修改 `daemon.json` 配置文件
- 2.2.3 重啟 docker 服務使配置生效
- 2.2.4 驗證鏡像源配置
- 2.3 常見問題與解決辦法
- 2.3.1 配置文件格式錯誤
- 2.3.2 鏡像源未生效
- 往期回顧 --- 往期專欄 和 系列博文
一、docker 服務安裝與基礎配置
本章節將涵蓋從服務初始化到日常使用的關鍵步驟。內容包括 docker 服務的啟動與開機自啟設置,確保環境持久可用;同時詳解 免 sudo 運行 docker 的權限配置方案,通過用戶組管理提升操作便捷性。通過遵循本章指引,各位觀眾老爺可快速搭建 docker 基礎環境,解決權限依賴問題,為后續容器化操作奠定高效、安全的基礎。
1.1 啟動docker服務
1.1.1 初次啟動docker
- 檢查狀態(確認是否運行)
sudo systemctl status docker# 退出請按 q
如下圖所示,這是我的docker狀態:
- 啟動docker服務
sudo systemctl start docker
- 停止docker服務(如需)
sudo systemctl stop docker
注釋: 以下是使用表格形式整理的 sudo systemctl start docker
命令解析
部分 | 作用 | 補充說明 |
---|---|---|
sudo | 以超級用戶(root)權限執行后續命令。 | 普通用戶需通過 sudo 提升權限才能管理系統服務。 |
systemctl | Systemd 系統和服務管理器的控制工具,用于管理服務、掛載點等。 | Systemd 是現代 Linux 發行版的默認初始化系統,負責啟動和管理進程。 |
start | 啟動指定的服務單元。 | 其他常用操作: - stop :停止服務- restart :重啟服務- enable :開機自啟- status :查看狀態 |
docker | 目標服務單元名稱(對應 docker.service 文件),啟動 Docker 守護進程。 | 服務文件路徑:/usr/lib/systemd/system/docker.service ,定義依賴、環境等配置。 |
這部分內容關于 Ubuntu系統服務管理 的詳細分析解讀,已經給各位觀眾老爺細致解讀過,請參考 Ubuntu教學系列(六):權限控制與系統管理 。
1.1.2 設置開機自啟動
- 設置docker開機自啟動
sudo systemctl enable docker
運行此命令后,docker服務將在每次系統重啟時自動啟動。
- 可再次查看服務狀態
sudo systemctl is-enabled docker
如果輸出為 enabled,則表示 docker 服務已成功配置為在啟動時自動運行。具體如下圖所示。
1.2 免 sudo
運行 docker 及驗證
1.2.1 添加 docker 用戶組( 可選,推薦!)
- 添加docker用戶組
# 將用戶加入 docker 組
sudo usermod -aG docker $USER
注釋: 以下是 sudo usermod -aG docker $USER
命令的解釋
部分 | 作用 | 補充說明 |
---|---|---|
sudo | 以管理員權限執行命令 | 修改用戶組需要 root 權限 |
usermod | 修改用戶賬戶屬性的工具 | 常用于調整用戶所屬組、家目錄等 |
-aG | -a :追加用戶到組(不覆蓋原有組)-G :指定目標組名 | 若省略 -a ,用戶會被移出其他組,僅保留 docker 組 |
docker | 目標用戶組名 | 加入此組后,用戶可直接運行 Docker 命令,無需 sudo |
$USER | 環境變量,表示當前用戶名 | 自動替換為你的登錄用戶名(如 john ),無需手動修改 |
命令作用
-
核心功能:將當前用戶加入
docker
用戶組,使其擁有直接操作 Docker 的權限(無需sudo
)。 -
典型場景:解決直接運行
docker ps
時提示Permission denied
的問題。
- 生效方法
修改用戶組后,需 重新登錄 或 重啟系統 使組權限生效。提供兩種方法:
-
注銷重新登錄
無需重啟整個系統,僅需:
# 注銷當前會話(圖形界面或終端)
logout
# 或使用以下命令重新加載組(部分系統有效)
newgrp docker
- 重啟系統(推薦)
# 立即重啟系統(需 sudo 權限)
sudo reboot
1.2.2 驗證是否生效
# 無需 sudo,直接查看容器列表
docker ps
如下圖所示,需要說明的是,docker ps
查詢的是正在運行的容器列表,我的容器列表是空的,正是因為我目前并沒有運行容器。
關于如何使用docker的相關操作,馬上更新,會非常詳細的講解每一個操作,給出超級詳細的解釋,趕快關注uo主吧,分享超級干貨!!!
二、Docker 鏡像源配置與加速
docker 鏡像源是提升容器化工作效率的關鍵環節,尤其在國內網絡環境下,默認鏡像源的訪問延遲和穩定性問題常成為瓶頸。本章將系統講解 鏡像源的核心作用、配置方法與驗證技巧,并針對典型問題提供解決方案。通過配置國內鏡像加速器,各位觀眾老爺可顯著縮短鏡像拉取時間,避免下載中斷,同時掌握 daemon.json 文件調優與服務重啟等實操技能,為構建高效、穩定的鏡像拉取環境提供可靠保障。
2.1 鏡像源的作用與必要性
2.1.1 鏡像源是什么?有什么作用
- 鏡像源
鏡像源是 Docker 鏡像的代理倉庫,充當用戶與 Docker Hub(默認官方源)之間的緩存中介。
- 其核心作用
-
加速鏡像拉取:通過地理就近的服務器分發鏡像,減少跨國網絡延遲。
-
提升可用性:在官方源不可用時,仍可通過鏡像源獲取緩存內容。
-
企業級管控:支持搭建私有鏡像源,統一管理內部鏡像依賴(如 Harbor 私有倉庫)。
2.1.2 為什么要修改默認鏡像源
Docker 默認從境外 Docker Hub 拉取鏡像,國內用戶直接訪問時面臨以下問題:
-
速度瓶頸:跨境網絡帶寬限制,導致下載耗時(如 Ubuntu 基礎鏡像可能需數十分鐘)。
-
匿名限流:Docker Hub 對未登錄用戶實施嚴格的請求限流策略,頻繁操作易觸發攔截。
-
穩定性風險:國際鏈路波動或防火墻干擾可能導致連接中斷。
使用國內鏡像源可針對性解決上述痛點,顯著優化體驗。
2.2 配置鏡像源
注釋:這個小節涉及關于 文件方面的操作,不熟悉的觀眾老爺,請參考 Ubuntu系列教學(五):文件與目錄的精準操控,有非常詳細的解讀。系統服務 方面的內容,上面已經給出鏈接,這里就不再贅述。
2.2.1 準備工作
- 確認 docker 服務已啟動(可跳過,已經設置自啟動)
# 檢查 Docker 服務狀態
sudo systemctl status docker# 若未運行,手動啟動
sudo systemctl start docker
- 備份 Docker 配置文件(可選,推薦)
docker 的鏡像源配置就是修改Ubuntu系統路徑 /etc/docker/
下的 daemon.json
文件。
# 備份配置文件
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
2.2.2 修改 daemon.json
配置文件
- 創建或編輯配置文件
# 使用 vim 編輯器
sudo vim /etc/docker/daemon.json # 使用 nano 編輯器
sudo nano /etc/docker/daemon.json
- 添加鏡像源地址
{"registry-mirrors": ["地址1","地址3","地址3"]
}
操作示例
{"registry-mirrors": ["https://hub-mirror.c.163.com","https://<your-aliyun-mirror>.mirror.aliyuncs.com","https://mirror.baidubce.com"]
}
注釋:上面主要是教各位觀眾老爺如何更換鏡像源,這部分是純干貨也可能是各位觀眾老爺最關心的地方。
下面的鏡像源是我目前正在使用的,并且文章下面也給出了驗證,完全可以使用!直接復制粘貼我的鏡像就可以!
來源:軒轅鏡像 。
{"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me","https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"]
}
- 將 1 和 2 操作簡化(視個人習慣,我習慣使用 1 和 2 操作)
sudo vim /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me","https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"]
}
EOF
注釋:<<EOF EOF
<<
是 shell 中的一種重定向操作符,用于表示將后面的內容作為前面命令的標準輸入。EOF
是一個約定俗成的標記,用于表示后面的內容是重定向的內容,直到遇到另一個EOF
標記時結束。在這里,它的作用是告訴 shell,從<<EOF
開始到下一個EOF
結束的內容,都要作為 vim 編輯器的輸入,即要寫入到/etc/docker/daemon.json
文件中的內容。
2.2.3 重啟 docker 服務使配置生效
sudo systemctl daemon-reload # 重新加載配置
sudo systemctl restart docker # 重啟 Docker 服務
2.2.4 驗證鏡像源配置
# 查看已配置的鏡像源
docker info | grep -A 1 "Registry Mirrors"# 測試拉取鏡像速度
docker pull ubuntu:latest
這是我使用的鏡像源,截至(2025.5.23
)完全可以正常使用,如下圖所示。
2.3 常見問題與解決辦法
2.3.1 配置文件格式錯誤
-
安裝校驗工具:
jq
sudo apt update && sudo apt install jq
-
校驗JSON 格式:
sudo jq . /etc/docker/daemon.json
2.3.2 鏡像源未生效
-
現象:docker info 未顯示鏡像源地址。
-
解決:
-
確認配置文件路徑為
/etc/docker/daemon.json
。 -
檢查 Docker 服務是否成功重啟。
-
關鍵的是,也是最有可能的,鏡像源失效!唯一的解決辦法是,換源!方法如上,和更換默認源一致。
-
能夠看到這里的觀眾老爺,無疑是對up的最大肯定和支持,在此懇求各位觀眾老爺能夠多多點贊、收藏和關注(強烈推薦大家關注一下up主和新建的這個合集“Ubuntu系統教學系列”)。在這個合集中,未來將持續給大家分享關于Ubuntu系統生態中的多種常見開發實用操作。未來也將繼續分享Docker、conda、ROS等等各種實用干貨。感謝大家支持!
我也除了更新剛剛新開的“Docker”合集,也會繼續更新“Ubuntu系統教學系列”合集,歡迎大家繼續關注。各位觀眾老爺的支持,就是我創作的最大動力!!!
往期回顧 — 往期專欄 和 系列博文
往期專欄: Ubuntu系統教學系列
本期專欄: Docker
Docker系列(一):初識Docker、安裝并快速上手實踐,逐幀過!!!