二、Docker安裝部署教程

作者:IvanCodes
日期:2025年7月7日
專欄:Docker教程

在前一篇文章中,我們了解了 Docker 的歷史、能做什么以及核心概念 (鏡像、容器、倉庫)。現在,我們將更進一步深入探究 Docker 中最常用也最核心的命令——docker run——其背后工作流程與原理。同時,我們還將詳細介紹如何在Linux系統安裝部署 Docker,并配置鏡像加速器提升鏡像拉取速度

一、docker run 的神奇之旅:從一條命令到一個運行中的容器

當你在終端中敲下 docker run 命令時,比如 docker run -it ubuntu /bin/bash看似簡單的一行命令背后,Docker 引擎執行了一系列復雜而有序操作

在這里插入圖片描述

二、在 Linux (以 CentOS/Ubuntu 為例) 上安裝部署 Docker

2.1 準備工作

  • 系統要求:建議使用 64 位的 CentOS 7/8 或 Ubuntu 18.04/20.04/22.04 LTS 版本。
  • 卸載舊版本:如果系統上安裝了舊的 Docker 版本,建議先卸載
# 對于 CentOS
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 對于 Ubuntu
apt-get remove docker docker-engine docker.io containerd runc

在這里插入圖片描述
在這里插入圖片描述

2.2 安裝步驟

對于 CentOS:

  1. 安裝必要的工具
yum install -y yum-utils
  1. 設置 Docker 的 yum 倉庫
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

在這里插入圖片描述

3. 安裝 Docker 引擎

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

在這里插入圖片描述
在這里插入圖片描述

4. 啟動并設置開機自啟

systemctl start docker
systemctl enable docker

對于 Ubuntu:

1. 更新 apt 包索引并安裝依賴
apt-get update
apt-get install -y ca-certificates curl gnupg
2. 添加 Docker 的官方 GPG 密鑰
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
3. 設置 Docker 的 apt 倉庫
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 安裝 Docker 引擎
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.3 驗證安裝

運行經典的 hello-world 鏡像驗證 Docker 是否安裝成功

docker run hello-world

在這里插入圖片描述

如果看到 “Hello from Docker!” 的歡迎信息,說明安裝成功

三、配置 Docker 鏡像加速器

由于Docker Hub 的服務器在國外,直接拉取鏡像有時會非常緩慢。配置國內的鏡像加速器可以顯著提升下載速度。

常見的國內鏡像加速器提供商

  • 阿里云容器鏡像服務 (ACR)
  • 網易云鏡像服務
  • DaoCloud
  • 騰訊云容器鏡像服務 (TCR)

配置步驟 (以通用方式為例):

1. 創建或修改 Docker 守護進程配置文件

配置文件通常是 /etc/docker/daemon.json。如果該文件不存在,請創建它。

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://<your-accelerator-url>"]
}
EOF

請將 https://<your-accelerator-url> 替換為你從加速器提供商獲取的專屬加速地址
例如,使用網易云的加速器地址:

tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF

如果你想配置多個加速器地址作為備份,可以換成下面的命令:

tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://registry.docker-cn.com","https://mirror.tuna.tsinghua.edu.cn","https://mirror.ccs.tencentyun.com","http://hub-mirror.c.163.com"]
}
EOF

在這里插入圖片描述

2. 重新加載配置并重啟 Docker 服務

修改完配置文件后,必須讓 Docker Daemon 重新加載配置并重啟

systemctl daemon-reload
systemctl restart docker

3. 驗證加速器是否生效

執行 docker info 命令,在輸出信息查找 Registry Mirrors 部分。

docker info

如果能看到你配置的加速器地址列表,說明配置成功

在這里插入圖片描述

到此,恭喜你配置成功!現在,當你再次執行 docker pulldocker run 一個本地不存在的鏡像時,Docker 會優先嘗試配置的加速器拉取,你會感受到速度的明顯提升

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

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

相關文章

【debug】git clone 報錯

報錯如下&#xff1a; error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8) error: 1964 bytes of body are still expected fetch-pack: unexpected disconnect while reading sideband packet fatal: early EOF fatal: fetch-pack: invalid…

二、MySQL 8.0 之《場景分析:不犧牲數據完整性下提供最大性能改進》

文章目錄前言一、場景二、場景問題分析正確的四項選擇 (B, C, E, H)錯誤的五項選擇 (A, D, F, G, I)三、場景問題收獲1. MySQL I/O子系統優化 (I/O Subsystem Optimization)2. InnoDB存儲引擎關鍵參數調優 (InnoDB Key Parameter Tuning)3. 數據完整性與ACID特性 (Data Integri…

Nuxt.js 靜態生成中的跨域問題解決方案

當您運行 npm run generate 生成靜態頁面時&#xff0c;Vite 的代理服務器確實無法使用&#xff0c;因為生成階段是在 Node.js 環境中執行的構建過程。但別擔心&#xff0c;我將為您提供一套完整的解決方案來處理構建階段的跨域問題。核心解決方案1. 構建階段&#xff1a;使用服…

【AI總結】Git vs GitHub vs GitLab:深度解析三者聯系與核心區別

目錄1 Git&#xff1a;版本控制的核心引擎1.1 Git的核心架構與工作原理1.2 Git的工作流程與區域劃分1.3 Git的核心能力2 GitHub vs GitLab&#xff1a;云端雙雄的差異化定位2.1 核心定位與市場策略2.2 技術架構深度對比2.2.1 核心功能差異2.2.2 AI能力演進路線&#xff08;2025…

使用 C++/Faiss 加速海量 MFCC 特征的相似性搜索

使用 C/Faiss 加速海量 MFCC 特征的相似性搜索 引言 在現代音頻處理應用中&#xff0c;例如大規模聲紋識別 (Speaker Recognition)、音樂信息檢索 (Music Information Retrieval) 或音頻事件檢測 (Audio Event Detection)&#xff0c;我們通常需要從海量的音頻庫中快速找到與…

大傾斜視角航拍圖像像素級定位

第一步對圖像進行讀取&#xff1a;研究數據集&#xff1a;在ARCGIS上觀察傾斜程度&#xff1a;PIL 對路徑的支持更友好&#xff1a;PIL 在處理文件路徑&#xff08;尤其是包含中文字符的路徑&#xff09;時通常更加健壯。OpenCV 在某些版本或特定環境下可能會對非英文路徑處理不…

Redis 緩存進階篇,緩存真實數據和緩存文件指針最佳實現?如何選擇?

目錄 一. 場景再現、具體分析 二. 常見實現方案及方案分析 2.1 數據庫字段最大存儲理論分析 2.2 最佳實踐方式分析 三. 接口選擇、接口分析 四. 數據庫設計 4.1 接口緩存表設計 4.1.1 建表SQL 4.1.2 查詢接口設計 4.2 調用日志記錄表設計 4.2.1 建表SQL 4.2.2 查詢…

Redis常用數據結構以及多并發場景下的使用分析:Hash類型

文章目錄前言hash 對比 String簡單存儲對象【秒殺系統】- 商品庫存管理【用戶會話管理】- 分布式Session存儲【信息預熱】- 首頁信息預熱降級策略總結前言 上文我們分析了String類型 在多并發下的應用 本文該輪到 Hash了&#xff0c;期不期待 兄弟們 hhh Redis常用數據結構以…

雙因子認證(2FA)是什么?從零設計一個安全的雙因子登錄接口

前言在信息系統逐漸走向數字化、云端化的今天&#xff0c;賬號密碼登錄已不再是足夠安全的手段。數據泄露、撞庫攻擊、社工手段頻發&#xff0c;僅靠「你知道的密碼」已不足以保證賬戶安全。因此&#xff0c;雙因子認證&#xff08;2FA, Two-Factor Authentication&#xff09;…

stack棧練習

為了你&#xff0c;我變成狼人模樣&#xff1b; 為了你&#xff0c;染上了瘋狂~ 目錄stack棧練習棧括號的分數單調棧模板框架小結下一個更大元素 I&#xff08;單調棧哈希&#xff09;接雨水stack棧練習 棧 一種先進后出的線性數據結構 具體用法可參考往期文章或者維基介紹i…

詳細頁智能解析算法:洞悉海量頁面數據的核心技術

詳細頁智能解析算法&#xff1a;突破網頁數據提取瓶頸的核心技術剖析引言&#xff1a;數字時代的數據采集革命在當今數據驅動的商業環境中&#xff0c;詳細頁數據已成為企業決策的黃金資源。無論是電商商品詳情、金融公告還是新聞資訊&#xff0c;??有效提取結構化信息??直…

ubuntu環境如何安裝matlab2016

一、下載安裝文件&#xff08;里面包含激活包CRACK&#xff09;可從度盤下載&#xff1a;鏈接:https://pan.baidu.com/s/1wxmVMzXiSY4RIT0dyKkjZg?pwd26h6 復制這段內容打開「百度網盤APP 即可獲取」注&#xff1a;這里面包含三個文件&#xff0c;其中ISO包含安裝文件&#x…

Mybits-plus 表關聯查詢,嵌套查詢,子查詢示例演示

在 MyBatis-Plus 中實現表關聯查詢、嵌套查詢和子查詢&#xff0c;通常需要結合 XML 映射文件或 Select 注解編寫自定義 SQL。以下是具體示例演示&#xff1a;示例場景 假設有兩張表&#xff1a; 用戶表 userCREATE TABLE user (id BIGINT PRIMARY KEY,name VARCHAR(50),age IN…

Stable Diffusion Web 環境搭建

默認你的系統Ubuntu、CUDA、Conda等都存在&#xff0c;即具備運行深度學習模型的基礎環境 本人&#xff1a;Ubuntu22.04、CUDA11.8環境搭建 克隆項目并且創建環境 https://github.com/AUTOMATIC1111/stable-diffusion-webui conda create -n sd python3.10運行過程自動安裝依賴…

嵌入式系統中實現串口重定向

在嵌入式系統中實現串口重定向&#xff08;將標準輸出如 printf 函數輸出重定向到串口&#xff09;通常有以下幾種常用方法&#xff0c;下面結合具體代碼示例和適用場景進行說明&#xff1a; 1. 重寫 fputc 函數&#xff08;最常見、最基礎的方法&#xff09; 通過重寫標準庫中…

static補充知識點-代碼

public class Student {private static int age;//靜態的變量private double score;//非靜態的方法public void run(){}public static void go(){}public static void main(String[] args) {new Student().run();Student.go();} } public class Person {//2 &#xff1a; 賦初始…

使用泛型<T>,模塊化,反射思想進行多表數據推送

需求&#xff1a;有13個表&#xff0c;其中一個主表和12細表&#xff0c;主表用來記錄推送狀態&#xff0c;細表記錄12種病例的詳細信息&#xff0c;現在需要把這12張病例表數據進行數據推送&#xff1b;普通方法需要寫12個方法分別去推送數據然后修改狀態&#xff1b;現在可以…

光流 | RAFT光流算法如何改進提升

RAFT(Recurrent All-Pairs Field Transforms)作為ECCV 2020最佳論文,已成為光流估計領域的標桿模型。其通過構建4D相關體金字塔和GRU迭代優化機制,在精度與泛化性上實現了突破。但針對其計算效率、大位移處理、跨場景泛化等問題,研究者提出了多維度改進方案,核心方向可系…

linux/ubuntu日志管理--/dev/log 的本質與作用

文章目錄 **一、基本概念****二、技術細節:UNIX域套接字****三、在不同日志系統中的角色****四、應用程序如何使用 `dev/log`****五、查看和驗證 `/dev/log`****六、總結 `/dev/log` 的核心作用**一、基本概念 /dev/log 是一個 UNIX域套接字(Unix Domain Socket),是Linux系…

EMC整改案例之(1):汽車NFC進入模塊BCI整改

EMC整改案例(1):汽車NFC進入模塊BCI整改 在汽車電子系統中,NFC(Near Field Communication)進入模塊用于實現無鑰匙進入功能,但它在電磁兼容(EMC)測試中常面臨挑戰。本案例聚焦于BCI(Bulk Current Injection)測試整改,該測試模擬大電流注入對設備的影響。以下是基于…