Linux(Ubuntu)系統安裝Docker與Docker Compose完整指南

本文是為需要在Ubuntu系統部署容器服務的開發者準備的詳細教程。我們將分兩個主要部分講解:Docker引擎的標準安裝流程和Docker Compose的配置方法。所有操作均在終端執行,建議使用Ubuntu 18.04及以上版本。

一、Docker引擎安裝全流程
(總耗時約5-10分鐘,需root權限)

1. 系統環境準備
在開始安裝前,建議先更新軟件源并升級現有軟件包:
?

sudo apt-get update       # 刷新軟件源索引
sudo apt-get upgrade -y   # 自動升級所有可更新軟件包



注意:若系統提示需要重啟(如內核升級),建議執行`sudo reboot`重啟后再繼續

2. 安裝必備依賴組件
?

sudo apt-get install -y \ca-certificates \    # SSL證書支持curl \               # 網絡傳輸工具gnupg \             # 加密簽名工具lsb-release         # 系統版本信息工具



這些依賴確保后續安裝過程的安全性和兼容性

3. 官方腳本自動化安裝
推薦使用Docker官方提供的一鍵安裝腳本:
?

curl -fsSL https://test.docker.com -o test-docker.sh  # 下載安裝腳本
sh test-docker.sh                                    # 執行安裝程序



說明:此腳本會自動完成以下工作:
- 添加Docker官方GPG密鑰
- 設置穩定版倉庫
- 安裝containerd運行時
- 配置docker-ce核心組件
- 創建docker用戶組

4. 配置國內鏡像加速(關鍵步驟)
由于默認倉庫訪問較慢,需配置鏡像源加速:
?

sudo vim /etc/docker/daemon.json  # 使用nano編輯器可替換為sudo nano



輸入以下內容(建議保留3-4個鏡像源):
?


{"registry-mirrors": ["https://docker.m.daocloud.io",    # 道克鏡像"https://docker.imgdb.de",         # 德國鏡像"https://docker-0.unsee.tech",     # 美國西海岸鏡像"https://docker.hlmirror.com"      # 香港鏡像]
}保存后按Esc輸入:wq退出vim

5. 重啟服務使配置生效
?

sudo systemctl daemon-reload     # 重載服務配置
sudo systemctl restart docker    # 重啟docker服務
sudo systemctl enable docker     # 設置開機自啟(可選)


驗證服務狀態:

`systemctl status docker`應顯示active(running)

6. 功能驗證測試
執行基礎鏡像拉取測試:
?

sudo docker pull hello-world    # 下載測試鏡像
sudo docker run hello-world     # 運行測試容器

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

二、Docker Compose安裝指南
(Docker官方推薦使用插件形式安裝)

1. 執行安裝命令
?

sudo apt install -y docker-compose-plugin  # 安裝官方插件版



該版本相較于傳統的docker-compose有以下優勢:
- 直接集成到docker CLI
- 版本與Docker Engine同步更新
- 兼容compose v2語法

2. 驗證安裝結果
?

docker compose version  # 注意中間沒有短橫線


預期輸出示例:
Docker Compose version v2.17.2

三、進階配置建議

1. 非root用戶權限配置(可選)
為避免每次使用sudo,可將當前用戶加入docker組:
?

sudo usermod -aG docker $USER   # $USER替換為具體用戶名
newgrp docker                   # 刷新用戶組



注意:修改后需要重新登錄生效

2. 常用維護命令
- 查看docker版本:`docker version`
- 查看系統信息:`docker info`
- 清理無用鏡像:`docker system prune`

四、常見問題排查

Q1:鏡像拉取速度慢
A:檢查daemon.json配置格式,建議注釋掉部分鏡像源測試

Q2:權限拒絕錯誤
A:執行`sudo chmod 777 /var/run/docker.sock`臨時解決,建議使用用戶組方案

Q3:腳本安裝失敗
A:可嘗試官方備用方案:
?

sudo apt-get install docker-ce docker-ce-cli containerd.io


?

五、版本兼容說明
- Docker 23.x+ 已內置Compose插件
- 舊版Compose文件需注意volume語法差異
- 建議定期執行`sudo apt-get upgrade docker-*`保持更新

六、安全建議
1. 定期清理無用鏡像:`docker image prune`
2. 避免使用--privileged特權模式
3. 生產環境建議配置TLS證書加密

通過本教程,您已完成Docker環境的完整部署。接下來可以:
- 嘗試部署Nginx:`docker run -d -p 80:80 nginx`
- 學習Dockerfile編寫
- 使用docker-compose編排多容器應用

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

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

相關文章

批量將 PPT 轉換為PDF/XPS/JPG圖片等其它格式

PPT 文檔經常有轉換為其它格式的需求,比如將 PPT 轉換為 PDF、將 PPT 轉換為圖片、生成 PPT 預覽圖等,這在某些場景下非常的有用,今天給大家介紹的就是如何批量將 PDF 轉換為 PDF、JPG、Tiff 等多種格式的操作。 在工作中我們經常需要接觸 PP…

c庫、POSIX庫、C++庫、boost庫之間的區別和聯系

文章目錄 一、區別1. 定義和來源2. 功能范圍3. 可移植性4. 語言支持5. 維護和更新 二、聯系1. 相互補充2. 部分功能重疊3. 共同促進編程發展4. 代碼兼容性 三、總結 一、區別 1. 定義和來源 C 庫函數:由 ANSI C 和 ISO C 標準定義,是 C 語言編程的基礎…

響應壓縮導致的接口請求response沒有響應體問題排查

目錄 一、背景二、排查過程三、解決方法四、學習與思考-響應壓縮(一)可能原因(二)深入排查(三)注意 一、背景 接口發布到測試環境,測試同學說沒有數據 二、排查過程 1、本地用相同的參數、相…

JVM中的運行時常量池詳解

運行時常量池(Runtime Constant Pool)是每一個類或接口的常量池(Constant_Pool)的運行時表示形式,它包括了若干種不同的常量:從編譯期可知的數值字面量到必須運行期解析后才能獲得的方法或字段引用。運行時…

C# MethodBase 類使用詳解

總目錄 前言 在C#編程中,反射(Reflection)是一種強大的機制,允許我們在運行時檢查和操作類型的成員。MethodBase 類是.NET框架中 System.Reflection 命名空間下的一個抽象類,它是所有方法( MethodInfo 和 Constructor…

【css酷炫效果】純CSS實現3D翻轉卡片動畫

【css酷炫效果】純CSS實現3D翻轉卡片動畫 緣創作背景html結構css樣式完整代碼效果圖 想直接拿走的老板,鏈接放在這里:https://download.csdn.net/download/u011561335/90490472 緣 創作隨緣,不定時更新。 創作背景 剛看到csdn出活動了&am…

Flask多參數模版使用

需要建立目錄templates; 把建好的html文件放到templates目錄里面; 約定好參數名字,單個名字可以直接使用;多參數使用字典傳遞; 樣例: from flask import render_template # 模板 (Templates) #Flask 使用…

SVN簡明教程——下載安裝使用

SVN教程目錄 一、開發中的實際問題二、簡介2.1 版本控制2.2 Subversion2.3 Subversion的優良特性2.4 工作原理2.5 SVN基本操作 三、Subversion的安裝與配置1. 服務器端程序版本2. 下載源碼包3. 下載二進制安裝包4. 安裝5. 配置版本庫① 為什么要配置版本庫?② 創建目…

OpenCV圖像拼接(1)概述

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 此圖說明了在Stitcher類中實現的拼接模塊流程。使用該類,可以配置/移除某些步驟,即根據特定需求調整拼接流程。流程中的所…

Ubuntu20.04安裝Nvidia顯卡驅動

Ubuntu20.04安裝Nvidia顯卡驅動 安裝環境為Dell R540服務器 官網下載Nvidia顯卡驅動 https://www.nvidia.cn/geforce/drivers/ 安裝顯卡驅動 chmod x NVIDIA-Linux-x86_64-470.63.01.run sudo ./NVIDIA-Linux-x86_64-470.63.01.run 遇到nouveau報錯 lsmod查看nouveau驅動…

互聯網it常用抓包工具說明

一、引言 在互聯網 IT 領域,無論是網絡故障排查、安全檢測,還是開發調試,抓包工具都發揮著舉足輕重的作用。 當網絡出現故障,比如網頁加載緩慢、應用無法連接服務器時,抓包工具可以幫助我們捕獲網絡數據包&#xff0…

Linux 音頻驅動 WM8960 音頻 DAC IC 音樂播放與錄音

這些先引出一個內容,是 Linux 內核的音頻系統,ALSA,提供了對聲卡的低級訪問,支持 PCM,播放/錄音、混音、MIDI 處理等功能。它取代了舊的 OSS,并提供更強大的功能和更好的硬件支持。 ALSA 主要特點&#xf…

k8s中的組件

1.namespace Namespace 用于將集群資源劃分為不同的邏輯組&#xff0c;方便管理和隔離 kubectl get namespace 查看所有邏輯組 kubectl describe namespace <namespace-name> 查看某個邏輯組信息詳情 kubectl create namespace ... 創建邏輯組 kubectl delete names…

OpenHarmony 開源鴻蒙北向開發——3.配置SDK

安裝、配置完成之后我們就要配置SDK。 我們創建工程后&#xff0c;點擊右上角設置 進入設置 進入OpenHarmony SDK&#xff0c;選擇編輯 這里配置一下SDK安裝位置 點擊完成 這里我們API版本勾選第一個即可 確認安裝 勾選接受 這里要等一會 安裝完成后&#xff0c;點擊完成

5.2《生活中的透鏡》——5.3《凸透鏡成像規律》講后再上

教會什么:照相機、投影儀、放大鏡的原理 培養什么:(再說) 課標: (二)運動和相互作用 2.3 聲和光 2.3.5了解凸透鏡成像規律的應用。 例7 了解凸透鏡成像規律在放大鏡、照相機中的應用。 一、導入 提問:生活中有哪些透鏡?(放大鏡、照相機、投影儀/幻燈機) ——直接提出…

怎么用LoRA的低秩結構近似Fisher矩陣

怎么用LoRA的低秩結構近似Fisher矩陣 目錄 怎么用LoRA的低秩結構近似Fisher矩陣**1. Fisher矩陣的內存挑戰****2. LoRA的低秩結構與Fisher近似****3. 具體實現步驟****4. 示例說明****5. 有效性分析****6. 擴展與優化****總結**在LoRA(低秩適應)中,通過低秩結構近似Fisher矩…

C#通過API接口返回流式響應內容---SignalR方式

1、背景 在上兩篇《C#通過API接口返回流式響應內容—分塊編碼方式》和《C#通過API接口返回流式響應內容—SSE方式》實現了流式響應的內容。 上面的這兩個主要是通過HTTP的一些功能&#xff0c;除了這些之外&#xff0c;還有WebSocket的方式。C#中的WebSocket的有比較多的方案&…

Redis 跳表原理詳解

一、引言 在 Redis 中&#xff0c;有序集合&#xff08;Sorted Set&#xff09;是一種非常重要的數據結構&#xff0c;它可以實現元素的有序存儲和高效查找。而實現有序集合的底層數據結構之一就是跳表&#xff08;Skip List&#xff09;。跳表是一種隨機化的數據結構&#xff…

識別并脫敏上傳到deepseek/chatgpt的文本文件中的身份證/手機號

本文將介紹一種簡單高效的方法解決用戶在上傳文件到DeepSeek、ChatGPT,文心一言,AI等大語言模型平臺過程中的身份證號以及手機號等敏感數據識別和脫敏問題。 DeepSeek、ChatGPT,Qwen,Claude等AI平臺工具快速的被接受和使用,用戶每天上傳的文本數據中潛藏著大量敏感信息,…

Spring 如何創建 Bean 實例的?

Spring 創建 Bean 實例的過程主要由 BeanFactory 接口及其實現類&#xff08;通常是 AbstractBeanFactory 的 doGetBean 方法和 DefaultListableBeanFactory 的 preInstantiateSingletons 方法&#xff09;負責。這個過程涉及多個步驟&#xff0c;包括 Bean 定義的解析、依賴的…