Docker 安装全攻略 | Ubuntu + CentOS 一键搞定

Docker 安装全攻略 | Ubuntu + CentOS 一键搞定

图片

随着 容器化技术 的普及,Docker 已经成为运维工程师和开发人员的“标配技能”。很多朋友初次接触 Docker 时,最关心的问题就是:如何快速安装并运行 Docker?

今天闲来无事,我就带大家从零开始,在常见的 Linux 环境中安装 Docker,并顺便跑起第一个容器 🚢。

👉什么是docker?

一句话解释:
👉 Docker 就像是一个“集装箱”,它能把应用和运行环境“打包”在一起,保证你在任何机器上都能快速运行,不用担心环境不一致的问题。

🔧环境准备

  • 系统:推荐使用 Ubuntu 20.04+CentOS 7+
  • 用户:需要具备 root 权限 或能执行 sudo

📥安装Docker

在Ubuntu上安装

1️⃣ 更新系统依赖

1
2
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

2️⃣ 添加 Docker 国内清华源 GPG Key

1
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

3️⃣ 添加 Docker 软件源

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

4️⃣ 安装 Docker

1
2
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

5️⃣ 验证安装

1
docker --version

如果能输出类似 Docker version X.X.X,说明安装成功 🎉。

在Centos上安装

1️⃣ 卸载旧版本

如果系统中有旧版本的 Docker(比如 dockerdocker-engine),先卸载:

1
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

2️⃣ 安装依赖

1
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3️⃣ 添加 Docker 官方源

1
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4️⃣ 安装 Docker

1
sudo yum install -y docker-ce docker-ce-cli containerd.io

5️⃣ 启动并设置开机自启

1
2
sudo systemctl start docker
sudo systemctl enable docker

6️⃣ 验证安装

1
docker --version

看到类似 Docker version X.X.X 的输出,说明安装成功 🎉。

🏃‍♂️ 跑一个 Hello World 容器

安装好 Docker 后,我们来运行一个测试容器:

1
docker run hello-world

如果看到一段 “Hello from Docker!” 的提示,说明你的 Docker 已经能正常工作啦 🚀。

图片

⚡ 常见问题

1、防火墙或代理问题?

有些网络环境下,拉取镜像可能慢,可以配置国内镜像源,比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://cr.console.aliyun.com",
"https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn/",
"https://yxzrazem.mirror.aliyuncs.com",
"https://docker.kubesre.xyz",
"https://dc.j8.work",
"https://docker.registry.cyou",
"https://docker.hlyun.org",
"https://docker.chenby.cn",
"https://docker.jsdelivr.fyi",
"https://docker-mirrors.mjjman.com",
"https://docker.kubesre.xyz",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://your_preferred_mirror",
"https://dockerhub.icu",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}

在文件路径:/etc/docker/daemon.json添加如上内容(亲测可用),并执行如下命令生效

1
systemctl daemon-reload && systemctl restart docker

📝

https://mp.weixin.qq.com/s/qcEYL25TeFb4Hkhib7aJtA?scene=1