Ubuntu 22.04 系統下 Docker 安裝與配置全指南

Ubuntu 22.04 系統下 Docker 安裝與配置全指南

一、前言

Docker 作為現代開發中不可或缺的容器化工具,能極大提升應用部署和環境管理的效率。本文將詳細介紹在 Ubuntu 22.04 系統上安裝與配置 Docker 的完整流程,包括環境準備、安裝步驟、權限配置及鏡像加速優化等關鍵環節。

二、安裝前的環境準備

1. 卸載舊版本 Docker(如有)

在安裝新版本 Docker 前,需先卸載系統中可能存在的舊版本:

sudo apt-get remove docker docker-engine docker.io containerd runc
2. 安裝必要的支持組件

安裝依賴包以確保 Docker 正常運行:

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

三、Docker 安裝核心步驟

1. 添加 Docker 官方 GPG 密鑰(推薦使用國內鏡像源)

國內用戶建議使用阿里云鏡像源的 GPG 密鑰(避免網絡問題):

# 阿里源 GPG 密鑰
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2. 配置軟件源(官方源與阿里源二選一)

方案一:使用 Docker 官方源(國外源,可能較慢)

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

方案二:使用阿里云鏡像源(推薦國內用戶)

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
3. 更新軟件包索引并安裝 Docker
# 更新系統軟件源
sudo apt update# 安裝 Docker 最新穩定版
sudo apt install docker-ce docker-ce-cli containerd.io# 驗證 Docker 安裝版本
sudo docker version# 檢查 Docker 服務運行狀態
sudo systemctl status docker

四、優化 Docker 使用體驗

1. 安裝 Docker 命令補全工具
# 安裝 bash 補全工具
sudo apt-get install bash-completion# 下載 Docker 補全腳本
sudo curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh# 加載補全配置
source /etc/bash_completion.d/docker.sh
2. 允許非 Root 用戶執行 Docker 命令

默認情況下,Docker 命令需要 root 權限,可通過以下步驟賦予普通用戶權限:

# 創建 docker 用戶組(若不存在)
sudo groupadd docker# 將當前用戶添加到 docker 組
sudo usermod -aG docker $USER# 使權限立即生效
newgrp docker# 測試權限(無需 sudo 執行 Docker 命令)
docker ps -a
3. 持久化權限配置(避免重啟終端后失效)

編輯 .bashrc 文件,添加以下內容以確保每次登錄時自動配置權限:

vi ~/.bashrc# 在文件末尾添加
groupadd -f docker

保存后執行 source ~/.bashrc 使配置生效。

五、配置 Docker 鏡像加速器(解決拉取慢問題)

國內訪問 Docker 官方鏡像倉庫可能會遇到網絡問題,需配置鏡像加速器:

# 創建或修改 Docker 配置文件
sudo vi /etc/docker/daemon.json

在文件中添加以下內容(可選擇部分國內鏡像源):

{"registry-mirrors": ["https://docker.registry.cyou","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.mirrors.ustc.edu.cn"]
}

修改完成后,重啟 Docker 服務使配置生效:

sudo systemctl daemon-reload
sudo systemctl restart docker

六、驗證 Docker 完整功能

完成所有配置后,可通過運行測試容器驗證 Docker 是否正常工作:

# 運行一個測試用的 Docker 容器(輸出 "Hello from Docker!")
sudo docker run hello-world

若看到類似以下輸出,則表示 Docker 安裝與配置成功:

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

七、總結

通過以上步驟,我們在 Ubuntu 22.04 系統上完成了 Docker 的安裝、權限配置及鏡像加速優化。Docker 的容器化技術能幫助開發者更高效地管理應用環境,后續可進一步學習 Docker Compose、容器編排等進階功能,提升開發與部署效率。

注意事項:

  • 國內用戶務必配置鏡像加速器,避免拉取鏡像時出現網絡超時
  • 新增用戶到 docker 組后,需重新登錄或執行 newgrp docker 使權限生效
  • 若遇到權限問題,可檢查 /var/run/docker.sock 文件的用戶組歸屬

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

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

相關文章

C#獲取磁盤容量:代碼實現與應用場景解析

C#獲取磁盤容量:代碼實現與應用場景解析 在軟件開發過程中,尤其是涉及文件存儲、數據備份等功能時,獲取磁盤容量信息是常見的需求。通過獲取磁盤的可用空間和總大小,程序可以更好地進行資源管理、預警提示等操作。在 C# 語言中&a…

2025年- H56-Lc164--200.島嶼數量(圖論,深搜)--Java版

1.題目描述 2.思路 (1)主函數,存儲圖結構 (2)主函數,visit數組表示已訪問過的元素 (3)輔助函數,用遞歸(深搜),遍歷以已訪問過的元素&…

詳細到用手撕transformer下半部分

之前我們討論了如何實現 Transformer 的核心多頭注意力機制,那么這期我們來完整地實現整個 Transformer 的編碼器和解碼器。 Transformer 架構最初由 Vaswani 等人在 2017 年的論文《Attention Is All You Need》中提出,專為序列到序列(seq2s…

WPF事件處理器+x名稱空間

目錄 ?編輯 一、事件處理器知識點 1. XAML中的事件綁定 2. C#中的事件處理方法 3. 方法簽名解釋 4. 命名規范 工作流程 二、導入引用名稱空間 三、x名稱空間及其常用元素 (1)x名稱空間的由來和作用 (2)x名稱空間里都有…

Axure設計案例——科技感漸變線性圖

想讓數據變化趨勢展示告別枯燥乏味,成為吸引觀眾目光的亮點嗎?快來看看這個Axure設計的科技感漸變線性圖案例!科技感設計風格憑借炫酷的漸變色彩打破傳統線性圖的單調,營造出一種令人過目難忘的視覺體驗。每一條線條都仿佛是流動的…

Git全流程操作指南

Git全流程操作指南 一、Git 環境配置 1. 安裝 Git Windows:下載 Git for Windows macOS:brew install git Linux: sudo apt-get update && sudo apt-get install git # Debian/Ubuntu sudo yum install git …

AI與軟件工程結合的未來三年發展路徑分析

基于對數字化、制造業、工業、零售業等行業的系統調研,以及微軟、谷歌、阿里、華為等大廠的實踐案例,我們可以預見未來三年AI與軟件工程結合將呈現以下發展路徑和趨勢。 一、技術應用維度 1. AI輔助編程工具全面普及 未來三年,AI輔助編程工…

tiktoken學習

1.tiktoken是OpenAI編寫的進行高效分詞操作的庫文件。 2.操作過程: enc tiktoken.get_encoding("gpt2") train_ids enc.encode_ordinary(train_data) val_ids enc.encode_ordinary(val_data) 以這段代碼為例,get_encoding是創建了一個En…

DeepSeek 賦能文化遺產數字化修復:AI 重構千年文明密碼

目錄 一、引言二、文化遺產數字化修復概述2.1 文化遺產數字化修復的意義2.2 傳統數字化修復方法與局限 三、DeepSeek 技術剖析3.1 DeepSeek 技術原理與核心優勢3.2 相比其他技術的獨特之處 四、DeepSeek 在文化遺產數字化修復中的應用4.1 破損文物的智能修復4.2 文化遺產的虛擬…

leetcode題解513:找樹左下角的值(遞歸中的回溯處理)!

一、題目內容: 題目要求找到一個二叉樹的最底層最左邊節點的值。具體來說,我們需要從根節點開始遍歷二叉 樹,找到最深的那層中的最左邊的節點,并返回該節點的值。因為要先找到最底層左側的值,所以我們選擇遍歷順序一定…

C#面試問題41-60

41. What is the Singleton design pattern? Singleton is a class that only allows creating a single instance of itselt. 單例設計模式是一個類,它只允許創建自己的單個實例。 構造函數防止他在單例類以外的地方被調用。 使用情景:need a sing…

筆記思考法

掌握麥肯錫流筆記術,對大家來說有以下幾種好處: 1) 可以將自己的思考可視化,使之變得更加清晰 2) 避免無用功 3) 經常能夠提出有創意的想法 4) 遇到問題時能夠及時找到解決辦法 5) 不管面對什么情況都能夠找出真正有效的解決辦法 為什么僅僅通過改變使用…

Rust 學習筆記:關于閉包的練習題

Rust 學習筆記:關于閉包的練習題 Rust 學習筆記:關于閉包的練習題問題 1問題 2以下程序能否通過編譯?若能,輸出是?以下程序能否通過編譯?若能,輸出是?考慮該 API,空白處填…

(一)微服務(垂直AP/分布式緩存/裝飾器Pattern)

文章目錄 項目地址一、創建第一個垂直API1.1 創建Common層1. ICommand接口2. IQuery接口 1.2 創建API1. 實體2. Handler3. endpoint 1.3 使用Marten作為ORM 二、Redis緩存2.1 使用緩存裝飾器1. 創建裝飾器2. 注冊裝飾器 2.2 創建docker-compose1. docker-compose2. docker-comp…

Spring AI系列之使用 Spring AI 轉錄音頻文件(基于OpenAI)

概述 企業常常需要從各種類型的音頻內容中提取有價值的數據,例如:將客戶支持通話轉錄用于情感分析、為視頻生成字幕,或整理會議紀要。然而,手動轉錄音頻文件既耗時又昂貴。 為了解決這一問題,OpenAI 提供了強大的語…

室內VR全景助力房產營銷及裝修

在當今的地產行業,VR全景已成為不可或缺的應用工具。從地產直播到樓市VR地圖,從效果圖到水電家裝施工記錄,整個地產行業的上下游生態中,云VR全景的身影無處不在。本文將探討VR全景在房產營銷及裝修領域的應用,并介紹眾…

Sentinel限流熔斷機制實戰

1、核心概念 1.1、流量控制 流量控制是為了 防止系統被過多的請求壓垮,確保資源合理分配并保持服務的可用性,比如對請求數量的限制。 流量控制的 3 個主要優勢: 防止過載:當瞬間涌入的請求量超出系統處理能力時,會…

深度解析 torch.mean 的替代方案

torch.mean 是什么意思 代碼效果解釋 segment_vector = torch.mean(segment_embedding, dim=1) # [1, hidden_dim] 這行代碼的作用是在指定維度上對張量 segment_embedding 求平均值,實現類似平均池化的效果。 具體來說,dim=1 表示沿著索引為1的維度進行操作。假設 segment…

Paraformer語音模型:一種語音模型加速方法

隨著智能語音技術的普及,語音識別(ASR)、語音合成(TTS)、聲紋識別等應用場景對模型推理效率提出了極高要求,本文介紹將Paraformer語音模型從預訓練模型導出為ONNX格式,并使用ONNX Runtime進行推…

本地部署FreeGPT+內網穿透公網遠程訪問,搞定ChatGPT外網訪問難題

?FreeGPT?是一個基于GPT 3.5/4的ChatGPT聊天網頁用戶界面,提供了一個開放的聊天界面,開箱即用?。ChatGPT是非常熱門的,但訪問體驗一直不太理想。為了解決這一問題,出現了各類方法和工具,其中FreeGPT是一款非常實用的…