嘿,大家好!今天我们来聊聊如何在 CentOS 系统上安装 Docker 和 Docker Compose 这两个神器。无论你是经验丰富的开发者,还是刚刚入门的新手,这篇文章都会带你一步步轻松搞定安装和配置。咱们废话不多说,撸起袖子加油干!
为什么选择 Docker?
简单来说,Docker 就像一个“集装箱”,可以把你的应用程序和它所需要的所有环境(比如代码、运行时、库、环境变量等)都打包在一起。这样一来,你的应用就可以在任何安装了 Docker 的机器上无差别运行,彻底告别“在我电脑上明明是好的”这种经典难题。
而 Docker Compose 则是 Docker 的好搭档,它允许你通过一个简单的 YAML 文件来定义和管理多个 Docker 容器的应用。比如,一个网站可能需要一个 Web 服务器容器和一个数据库容器,用 Docker Compose 就能一键启动、关闭或管理它们,非常方便。
第一部分:安装 Docker Engine
在安装之前,请确保你使用的是 CentOS 7 或 CentOS Stream 的一个维护版本。
第 1 步:卸载旧版本(可选)
如果你的系统上之前装过旧版的 Docker,最好先清理一下。没装过的话,可以直接跳过这一步。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果系统提示没有这些包,别担心,这说明你的系统很干净,可以继续下一步。
第 2 步:设置 Docker 的软件仓库
我们需要告诉 CentOS 的包管理器 yum(或 dnf)去哪里下载 Docker。官方推荐从 Docker 自己的仓库下载,这样能保证我们用上最新最稳定的版本。
首先,安装 yum-utils,它提供了一个配置管理工具。
sudo yum install -y yum-utils
然后,添加 Docker 的官方仓库地址。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
这个命令会自动帮你创建一个仓库配置文件,让 yum 知道去哪里找 Docker Community Edition (CE) 的安装包。
第 3 步:安装 Docker Engine
现在万事俱备,只差临门一脚了。执行下面的命令来安装 Docker Engine、命令行工具 (CLI)、containerd 和 Docker Compose 插件。
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
yum 会自动处理所有依赖关系,你只需要耐心等待安装完成。
第 4 步:启动并设置开机自启
安装完成后,Docker 服务并不会自动启动。我们需要手动启动它,并设置为开机自动运行,这样服务器重启后 Docker 也能正常工作。
# 启动 Docker 服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
第 5 步:验证安装是否成功
怎么知道 Docker 是不是真的装好了呢?跑一个经典的 hello-world 镜像试试就知道了。
sudo docker run hello-world
如果一切顺利,你会看到 Docker 自动下载 hello-world 镜像,并打印出一条欢迎信息,类似下面这样:
Hello from Docker!
This message shows that your installation appears to be working correctly.
看到这个,就说明你的 Docker 已经成功安装并运行啦!
第二部分:安装 Docker Compose (独立版)
虽然在安装 Docker Engine 时我们已经安装了 docker-compose-plugin,可以通过 docker compose 命令使用。但在很多场景下,你可能还是习惯于使用独立的 docker-compose 命令。下面我们来介绍如何安装它。
第 1 步:下载 Docker Compose 二进制文件
Docker Compose 官方提供了一个可以直接运行的二进制文件。我们可以从 GitHub 上下载它。
注意: 下面的命令会下载一个特定版本,你可以去 Docker Compose 的 GitHub 发布页面 查看最新版本号,并替换命令中的版本号。
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
这个命令会把文件下载到 /usr/local/bin 目录下,这是一个通常存放用户自定义可执行文件的地方。
第 2 步:添加可执行权限
下载下来的文件还不能直接运行,我们需要给它加上执行权限。
sudo chmod +x /usr/local/bin/docker-compose
第 3 步:验证安装
最后,检查一下版本号,确认 docker-compose 命令是否可用。
docker-compose --version
如果输出了版本信息,比如 docker-compose version 1.29.2, build 5becea4c,那就大功告成了!
第三部分:实战案例 - 用 Docker Compose 部署 WordPress
理论说完了,我们来点实际的。下面我们用 Docker Compose 快速搭建一个 WordPress 网站,它将包含一个 WordPress 应用和一个 MySQL 数据库。
第 1 步:创建一个项目目录
首先,为你的项目创建一个目录,并进入该目录。
mkdir my-wordpress-site && cd my-wordpress-site
第 2 步:创建 docker-compose.yml 文件
在这个目录里,创建一个名为 docker-compose.yml 的文件。这是 Docker Compose 的核心配置文件。
nano docker-compose.yml
然后,把下面的内容复制粘贴进去。
version: '3.8'
services:
db:
image: mysql:5.7
container_name: wordpress-db
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_strong_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: your_strong_password
wordpress:
depends_on:
- db
image: wordpress:latest
container_name: wordpress-app
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: your_strong_password
WORDPRESS_DB_NAME: wordpress
volumes:
db_data:
重要提示: 请务必将 your_strong_password 替换为你自己的复杂密码!
文件解析:
-
version: '3.8':指定了docker-compose文件的版本。 -
services: 定义了两个服务,一个是db(数据库),一个是wordpress(网站应用)。 db服务:-
image: mysql:5.7: 使用 MySQL 5.7 版本的官方镜像。 -
volumes: 创建一个名为db_data的数据卷,并挂载到容器的/var/lib/mysql目录,这样即使容器被删除,数据库文件也能持久化保存。 -
restart: always: 保证容器在退出后总是会自动重启。 -
environment: 设置了数据库需要的环境变量,如 root 密码和为 WordPress 创建的数据库及用户。
-
wordpress服务:-
depends_on: [db]: 指定wordpress服务依赖于db服务,这样可以确保数据库容器先于 WordPress 容器启动。 -
image: wordpress:latest: 使用最新的 WordPress 官方镜像。 -
ports: ["8000:80"]: 将主机的 8000 端口映射到容器的 80 端口。这样你就可以通过http://你的服务器IP:8000访问网站了。 -
environment: 告诉 WordPress 如何连接到数据库。注意WORDPRESS_DB_HOST的值是db,也就是我们定义的数据库服务的名称。Docker Compose 会在内部网络中自动解析这个主机名。
-
-
volumes: db_data:: 在文件末尾声明了我们要使用的数据卷。
第 3 步:启动应用
保存并关闭文件后,在 docker-compose.yml 所在的目录下,执行以下命令:
sudo docker-compose up -d
-
up: 创建并启动容器。 -
-d: 表示在后台(detached mode)运行,这样你的终端就不会被日志占用了。
Docker Compose 会自动下载镜像并按你的配置启动容器。你可以用 docker ps 命令查看正在运行的容器。
现在,打开你的浏览器,访问 http://你的服务器IP:8000,你应该就能看到 WordPress 的安装界面了。接下来,按照页面提示完成安装即可。
总结
恭喜你!现在你已经掌握了在 CentOS 上安装和使用 Docker 及 Docker Compose 的技能。通过容器化,应用的部署和管理变得前所未有的简单和高效。希望这篇文章能帮你打开新世界的大门,快去探索 Docker 的更多强大功能吧!