二、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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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)测试整改,该测试模拟大电流注入对设备的影响。以下是基于…