基于國內環境 在Ubuntu 上安裝 Docker 指南

前言

在容器化技術主導云原生時代的今天,Docker 憑借其輕量化、高移植性和秒級部署能力,已成為開發與運維的必備工具。然而,國內用戶在 Ubuntu 系統上安裝 Docker 時,常因 ?官方鏡像源訪問受限、網絡延遲高、依賴包安裝失敗 等問題陷入困境,導致效率大幅降低。

本文針對 ?Ubuntu 22.04 LTS(Jammy)及 24.04 LTS(Noble)? 系統,結合國內網絡環境特性,提供一套 ?開箱即用、高效穩定 的 Docker 部署方案。

一、安裝前的環境準備

1. 系統要求

? 操作系統:Ubuntu 22.04 LTS(Jammy)或 24.04 LTS(Noble)
? 權限要求sudo 權限
? 網絡要求:需訪問國內鏡像源(如阿里云、清華源)

2. 清理舊版本(如適用)
sudo apt-get remove docker docker-engine docker.io containerd runc

二、安裝 Docker CE 社區版

1. 更新系統與安裝依賴
# 更新軟件包索引
sudo apt-get update
# 安裝基礎依賴
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common
2. 配置國內鏡像源與密鑰

(阿里云示例)

# 添加 GPG 密鑰(阿里云鏡像)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 添加 Docker 倉庫(適配當前系統版本)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

注意$(lsb_release -cs) 會自動獲取系統代號(如 jammynoble

3. 安裝 Docker 引擎
# 更新倉庫并安裝 Docker
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4. 驗證安裝
# 啟動服務并設置開機自啟
sudo systemctl start docker
sudo systemctl enable docker# 運行測試容器
sudo docker run hello-world

若輸出 Hello from Docker! 表示安裝成功


三、國內鏡像加速配置

1. 配置鏡像加速器

編輯 /etc/docker/daemon.json,添加國內鏡像源地址:

sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.m.daocloud.io",      # DaoCloud鏡像"https://docker.1ms.run" # 公益鏡像(可選)]
}
EOF

重啟服務生效

sudo systemctl daemon-reload
sudo systemctl restart docker

驗證配置

docker info | grep "Registry Mirrors"

需顯示配置的鏡像地址


四、權限管理與優化

1. 非 root 用戶權限

將當前用戶加入 docker 組,避免使用 sudo

sudo usermod -aG docker $USER
newgrp docker    # 刷新組權限
2. 存儲路徑優化(可選)

若需自定義 Docker 存儲目錄(如掛載大容量磁盤):

# 創建存儲目錄并軟鏈接
sudo mkdir -p /data/docker
sudo ln -s /data/docker /var/lib/docker

五、常見問題與解決方案

1. 安裝依賴報錯

? 錯誤示例E: Unable to locate package docker-ce
? 原因:鏡像源未正確適配系統版本或倉庫未啟用
? 解決:重新檢查倉庫配置,確保 $(lsb_release -cs) 輸出與鏡像源支持的版本匹配

2. 鏡像拉取失敗

? 原因:加速器地址失效或網絡不穩定
? 解決:更換鏡像源(優先使用騰訊云或阿里云),并檢查防火墻規則:

# 臨時關閉防火墻(僅測試用)
sudo ufw disable
3. 服務啟動失敗

? 錯誤示例Failed to start docker.service
? 排查步驟

# 查看詳細日志
journalctl -u docker.service --no-pager
# 檢查存儲驅動兼容性(推薦 overlay2)
docker info | grep "Storage Driver"

六、擴展功能

1. Docker Compose 安裝
sudo apt-get install -y docker-compose-plugin

驗證:docker compose version

2. Portainer 可視化工具部署
docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

訪問 http://<IP>:9000 初始化管理界面


總結

本文基于國內網絡環境,從依賴安裝到鏡像加速配置,完整覆蓋了 Docker 在 Ubuntu 系統上的部署流程,并針對常見問題提供解決方案。通過結合阿里云、騰訊云等鏡像源,可顯著提升安裝與鏡像拉取效率,滿足開發與生產環境需求


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75124.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75124.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75124.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據結構:二叉樹(三)·(重點)

二叉樹的存儲結構 ?叉樹?般可以使?兩種結構存儲&#xff0c;?種順序結構&#xff0c;?種鏈式結構。 順序結構 順序結構存儲就是使?數組來存儲&#xff0c;?般使?數組只適合表?完全?叉樹&#xff0c;因為不是完全?叉樹會有 空間的浪費&#xff0c;完全?叉樹更適合…

EasyExcel實現圖片導出功能(記錄)

背景&#xff1a;在舊系統的基礎上&#xff0c;導出一些工單信息時&#xff0c;現需要新添加處理人的簽名或者簽章&#xff0c;這就涉及圖片的上傳、下載、寫入等幾個操作。 1、EasyExcel工具類 &#xff08;1&#xff09;支持下拉框的導出。 import com.alibaba.excel.Easy…

Android Material Design 3 主題配色終極指南:XML 與 Compose 全解析

最小必要顏色配置 <!-- res/values/themes.xml --> <style name"Theme.MyApp" parent"Theme.Material3.DayNight"><!-- 基礎三原色 --><item name"colorPrimary">color/purple_500</item><item name"col…

【Git】“warning: LF will be replaced by CRLF”的解決辦法

一、原因分析 不同操作系統的換行符標準不同&#xff1a; ? Windows&#xff1a;使用 CRLF&#xff08;\r\n&#xff09;表示換行&#xff1b; ? Linux/Mac&#xff1a;使用 LF&#xff08;\n&#xff09;表示換行 Git 檢測到本地文件的換行符與倉庫設置或目標平臺不兼容時…

PyTorch 深度學習實戰(33):聯邦學習與隱私保護

在上一篇文章中,我們探討了多模態學習與CLIP模型的應用。本文將深入介紹聯邦學習(Federated Learning)這一新興的分布式機器學習范式,它能夠在保護數據隱私的前提下實現多方協作的模型訓練。我們將使用PyTorch實現一個基礎的聯邦學習框架,并在圖像分類任務上進行驗證。 一…

藍橋杯 web 展開你的扇子(css3)

普通答案&#xff1a; #box:hover #item1{transform: rotate(-60deg); } #box:hover #item2{transform: rotate(-50deg); } #box:hover #item3{transform: rotate(-40deg); } #box:hover #item4{transform: rotate(-30deg); } #box:hover #item5{transform: rotate(-20deg); }…

LLM驅動的智能體:基于GPT的對話智能體開發指南

前言 大語言模型&#xff08;LLM, Large Language Model&#xff09;正在徹底改變智能體&#xff08;Agent&#xff09;的設計和實現方式。從簡單的聊天機器人到復雜的自動化助手&#xff0c;基于GPT等LLM的對話智能體已經在客服、教育、辦公自動化、編程助手等領域得到了廣泛…

深度解析 C# 中介者模式:設計與實戰應用

中介者模式&#xff08;Mediator Pattern&#xff09;是一種行為型設計模式&#xff0c;其核心思想是將多個對象之間的交互集中到一個中介者對象中&#xff0c;從而減少對象之間的直接交互&#xff0c;降低耦合度。在實現復雜系統時&#xff0c;中介者模式有助于提高系統的可維…

每日算法-250408

記錄今天解決的兩道 LeetCode 算法題&#xff0c;主要涉及二分查找的應用。 1283. 使結果不超過閾值的最小除數 題目描述 思路 核心思路是 二分查找。 解題過程 為什么可以使用二分&#xff1f; 關鍵在于單調性。對于一個固定的數組 nums&#xff0c;當除數 divisor 增大時&…

MySQL的子查詢

一、前言 MySQL 子查詢是指嵌套在其他 SQL 語句&#xff08;如 SELECT、WHERE、FROM 等&#xff09;內部的查詢。用于輔助主查詢完成復雜的數據篩選或計算。 二、子查詢分類 標量子查詢 描述&#xff1a;返回 單行單列&#xff08;一個值&#xff09;&#xff0c;常用于比較運…

Linux 基礎入門操作 前言 VIM的基本操作 2

1 VIM的背景介紹 Vi 的誕生與1976年&#xff0c;Vim 的前身是 Vi&#xff08;Visual Editor&#xff09;&#xff0c;由 Bill Joy 在 BSD Unix 系統上開發&#xff0c;作為 ed&#xff08;行編輯器&#xff09;的改進版本&#xff0c;提供全屏編輯功能&#xff0c;成為 Unix/L…

Java:Set操作

目錄 Set 轉 List Set 轉 List Set<String>set new HashSet<String>(); set.add("c"); set.add("d"); set.add("a"); set.add("a");//方法一&#xff1a; List<String>list new ArrayList<String>(set);//…

算力驅動未來:從邊緣計算到高階AI的算力革命

算力驅動未來&#xff1a;從邊緣計算到高階AI的算力革命 摘要 本文深入探討了不同算力水平&#xff08;20TOPS至160TOPS&#xff09;在人工智能領域的多樣化應用場景。從邊緣計算的實時目標檢測到自動駕駛的多傳感器融合&#xff0c;從自然語言處理的大模型應用到AI for Scie…

虛擬機上安裝openEuler和openGauss數據庫

1.虛擬機版本選擇VM 16 PRO 2.openEuler版本選擇openEuler-22.03-LTS-SP4-x86_64 下載地址&#xff1a;https://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP4/ISO/x86_64/openEuler-22.03-LTS-SP4-x86_64-dvd.iso 3.虛擬機安裝openEuler過程&#xff1a; 4.安裝ope…

0_Pytorch中的張量操作

[引言]張量的概念 1.基本概念 張量是一個通用的多維數組&#xff0c;可以表示標量&#xff08;0 維&#xff09;、向量&#xff08;1 維&#xff09;、矩陣&#xff08;2 維&#xff09;以及更高維度的數據。張量是 PyTorch 中的核心數據結構&#xff0c;用于表示和操作數據。…

LS-LINUX-002 簡易創建SSH

LS-LINUX-002 簡易創建SSH 1. CentOS 8 創建和配置SSH服務 1.1 安裝SSH服務 CentOS 8 默認已經安裝了OpenSSH服務。如果沒有安裝&#xff0c;可以使用以下命令安裝&#xff1a; sudo dnf install -y openssh-server1.2 啟動SSH服務 安裝完成后&#xff0c;需要啟動SSH服務…

計算機專業求職面試的常見題目分類整理

以下是計算機專業求職面試的常見題目分類整理&#xff0c;每個大類精選20道高頻問題&#xff0c;結合參考內容進行解析與擴展&#xff0c;幫助系統化備考&#xff1a; 一、數據結構與算法 解釋時間復雜度和空間復雜度 時間復雜度衡量算法執行時間隨輸入規模的增長趨勢&#xf…

腳本啟動 Java 程序

如果你想在后臺啟動一個 Java 程序&#xff0c;并在終端窗口中顯示一個自定義的名字&#xff0c;可以通過編寫一個簡單的腳本來實現。以下是一個基于 Linux/macOS 的解決方案&#xff0c;使用 Bash 腳本啟動 Java 程序&#xff0c;并在終端窗口中顯示自定義標題。 示例腳本 創建…

CentOS禁用nouveau驅動

1、驗證 nouveau 是否在運行 lsmod | grep nouveau如果命令返回結果&#xff0c;說明 nouveau 驅動正在運行。 2、編輯黑名單文件 通過編輯黑名單配置文件來禁用 nouveau 驅動&#xff0c;這樣在系統啟動時不會加載它。 vi /etc/modprobe.d/blacklist-nouveau.conf修改以下…

Linux: network: tcpdump: packets dropped by kernel

文章目錄 最近遇到一個問題原因libpcap/tcpdump 接口linux/libpcap 接口內核的處理原因可能有以下幾種:解決方法:man pcap_stats最近遇到一個問題 tcpdump命令顯示有dropped的包,而且是被內核drop的。 [root@-one-01 ~]# tcpdump -i any udp and port 8080 -v -w /root/udp…