Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率!使用 Docker 只需要输入几行命令就能启动并安装一个程序,不需要对 VPS 进行复杂的配置与修改。

无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,节省自己的时间。

Docker Logo

使用 Docker 可以非常轻松的部署如:VaultWarden / Gitea / FileRun / WordPress / 图床等各种服务,并且不需要因为安装程序而环境头痛。

准备工作

首先先卸载旧版本的 docker / docker-engine,如果先前没有安装过 docker 可以略过这一步,不论是否有安装,也建议先执行下述指令,确保环境没有问题:

1
2
3
4
5
6
7
8
9
10
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

执行完上述命令后,正式开始 Docker 的安装。

使用 Yum 安装 Docker

首先,执行以下命令安装 yum-utils 依赖包:

1
sudo yum install -y yum-utils

安装完成后,输入下述指令,将 yum 软件源修改为国内源(因为网络问题,如果 VPS 不存在网络相关的问题可以略过这步)

1
2
3
4
5
6
7
8
9
10
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

# 切换回官方源,使用下述指令
# $ sudo yum-config-manager \
# --add-repo \
# https://download.docker.com/linux/centos/docker-ce.repo

指令执行完成后,输入下述指令更新 yum 软件源缓存

1
2
yum clean cache
yum makecache

执行完成以后,开始安装 Docker 啦

安装 Docker

在执行完上述指令以后,安装 Docker 就是很简单的一条指令的事情了,输入这条指令安装 docker-ce(Docker 社区版,由社区维护和提供技术支持,为免费版本,适合个人使用)

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

安装完成以后,输入下述指令启动 Docker 即可

1
2
sudo systemctl enable docker
sudo systemctl start docker

测试 Docker 是否安装正确

安装完成后,使用下述指令即可检查 Docker 是否安装正确:

1
docker run --rm hello-world

只要输入了下方文本内容,则说明安装成功了。

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
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

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

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

配置权限

默认情况下,docker 命令使用 Unix socket 与 Docker 引擎进行通讯。只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。

出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。更好地做法是将需要使用 docker 的用户加入 docker 用户组。

输入下述指令创建 docker 组:

1
sudo groupadd docker

将当前用户加入到 docker 组中:

1
sudo usermod -aG docker $USER

配置完成后,退出当前终端并且重新登录即可。

使用 Docker Compose 管理应用

Docker Compose 是 Docker 官方的开源项目,用于对 Docker 容器集群的快速编排。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

简而言之,即是我们可以用一个 yml 文件,启动一个 Docker 的应用程序,并且在这个文件里配置应用所需要的环境变量,如博客等需要使用 MySQL 数据库的地址、用户,配置站点信息,以及多个应用之间的互联互通。

安装 Docker Compose

安装 Docker-Compose 推荐直接下载二进制包,只需要将放进 /usr/local/bin 文件夹中即可直接使用 docker-compose 指令。

输入下述指令,下载并将 Docker-Compose 的二进制文件放入指定目录中

1
sudo curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

由于这个文件是放在 Github 上的,而国内访问这个地址下载速度会非常慢,可以尝试使用下述指令,加快下载:

1
sudo curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

如果使用这条指令下载的包,输入 docker-compose 指令有错误,推荐自己下载 Github 上对应的文件包,并使用 scp 指令将文件放入服务器中的指定地址。

在文件下载完成后,输入以下指令,授权 Docker Compose 程序执行系统命令

1
sudo chmod +x /usr/local/bin/docker-compose

执行到这一步,Docker Compose 就安装完成了,可以在命令行中输入下述指令,查看是否安装成功:

1
2
$ docker-compose  -v
Docker Compose version v2.15.0

如需卸载 Docker Compose,只需要删除此二进制文件,使用下面这条指令就可以删除了:

1
sudo rm /usr/local/bin/docker-compose

尝试一些好玩的程序

执行到这一步,Docker 和 Docker Compose 就已经安装完成了,建议小伙伴们尝试以下 Docker 程序,让自己的 VPS 变成一个好用的工具:

在折腾 Docker 程序之前,强烈推荐先安装 Caddy2 作为反向代理 Docker 应用的网页服务器,好处太多了:Caddy2 安装

参考链接

编写本教程,主要是参考了一些其他前辈的分享,有兴趣的可以去看看原文: