CentOS 安装 Docker 最新版:简单易懂的图文教程 – wiki基地

CentOS 安装 Docker 最新版:简单易懂的图文教程

Docker,一个强大的容器化平台,允许开发者将应用程序及其依赖项打包到一个可移植的容器中,从而实现跨环境的一致性和便捷的部署。CentOS 作为一款流行的企业级 Linux 发行版,与 Docker 配合使用,能极大地提高开发效率和运维效率。 本文将以图文并茂的方式,详细介绍如何在 CentOS 上安装最新版本的 Docker,并提供一些常用的 Docker 命令和最佳实践,帮助你快速上手 Docker。

一、准备工作

在开始安装 Docker 之前,需要确保你的 CentOS 系统满足以下条件:

  1. CentOS 7 或更高版本: Docker 支持 CentOS 7 及以上版本。可以通过以下命令查看 CentOS 版本:

bash
cat /etc/redhat-release

  1. root 用户或具有 sudo 权限的用户: 安装 Docker 需要 root 权限或具有 sudo 权限的用户。

  2. 互联网连接: 安装 Docker 需要从 Docker 官方仓库下载软件包,因此需要保证网络连接畅通。

  3. 卸载旧版本 Docker (如果存在): 如果你的系统之前安装过旧版本的 Docker,需要先卸载它们,以避免冲突。可以使用以下命令卸载旧版本 Docker:

bash
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

二、安装 Docker

以下步骤将引导你完成 Docker 的安装。

1. 安装 yum-utils:

yum-utils 提供了一些额外的 yum 工具,方便我们管理 yum 仓库。使用以下命令安装 yum-utils:

bash
sudo yum install -y yum-utils

2. 添加 Docker 官方 yum 仓库:

Docker 官方提供了 yum 仓库,方便我们通过 yum 安装和更新 Docker。使用以下命令添加 Docker 官方 yum 仓库:

bash
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

该命令会将 Docker 的 yum 仓库添加到你的系统中。 你也可以指定 Docker 的稳定版仓库、测试版仓库或 nightly 版仓库。 例如,要使用测试版仓库,可以使用以下命令:

bash
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

或者,使用 nightly 版仓库:

bash
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

通常情况下,建议使用稳定版仓库。

3. (可选)启用或禁用仓库:

Docker 仓库默认是启用的。 你可以禁用它,并在需要时启用它。 要禁用 Docker 仓库,可以使用以下命令:

bash
sudo yum-config-manager --disable docker-ce-stable

要重新启用它,可以使用以下命令:

bash
sudo yum-config-manager --enable docker-ce-stable

4. 安装 Docker Engine:

现在,我们可以使用 yum 安装 Docker Engine、Containerd 和 Docker Compose。 使用以下命令安装 Docker Engine:

bash
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

这条命令会安装 Docker Engine、Docker CLI (命令行界面) 以及 Containerd (容器运行时)。

5. 启动 Docker 服务:

安装完成后,需要启动 Docker 服务。 使用以下命令启动 Docker 服务:

bash
sudo systemctl start docker

6. 设置 Docker 开机自启:

为了让 Docker 在系统启动时自动启动,可以使用以下命令:

bash
sudo systemctl enable docker

7. 验证 Docker 安装:

可以使用以下命令验证 Docker 是否成功安装:

bash
docker version

该命令会显示 Docker Client 和 Docker Server 的版本信息。

如果一切正常,你应该能看到类似以下的输出:

“`
Client: Docker Engine – Community
Version: 24.0.5
API version: 1.43
Go version: go1.20.6
Git commit: ced1596
Built: Fri Jul 21 20:35:55 2023
OS/Arch: linux/amd64
Context: default

Server: Docker Engine – Community
Engine:
Version: 24.0.5
API version: 1.43 (minimum version 1.12)
Go version: go1.20.6
Git commit: ced1596
Built: Fri Jul 21 20:35:55 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.22
GitCommit: 3c2a4a82a79c51a71d3566a23f756c40c24e7ab8
runc:
Version: 1.1.8
GitCommit: v1.1.8-0-g82f18fe
docker-init:
Version: 0.19.0
GitCommit: de40ad0
“`

8. 运行 Hello World 镜像:

为了进一步验证 Docker 是否正常工作,可以运行一个简单的 Hello World 镜像。 使用以下命令运行 Hello World 镜像:

bash
docker run hello-world

该命令会从 Docker Hub 下载 Hello World 镜像,并运行一个简单的程序,输出 “Hello from Docker!”。

如果一切正常,你应该能看到类似以下的输出:

“`
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 (可选)

1. 使用非 root 用户运行 Docker:

默认情况下,只有 root 用户才能运行 Docker 命令。 为了安全起见,建议将普通用户添加到 docker 用户组,使其能够运行 Docker 命令,而无需使用 sudo

首先,创建 docker 用户组(如果不存在):

bash
sudo groupadd docker

然后,将你的用户添加到 docker 用户组:

bash
sudo usermod -aG docker $USER

替换 $USER 为你的用户名。

最后,注销并重新登录,或者运行以下命令来更新你的用户组信息:

bash
newgrp docker

现在,你应该能够以普通用户身份运行 Docker 命令,而无需使用 sudo

2. 配置 Docker 镜像加速器:

由于 Docker Hub 位于国外,下载镜像速度可能较慢。 可以配置 Docker 镜像加速器,加速镜像下载速度。 国内常用的 Docker 镜像加速器包括:

  • 阿里云镜像加速器: (需要注册阿里云账号)
  • 网易云镜像加速器:
  • DaoCloud 镜像加速器:

以阿里云镜像加速器为例,配置步骤如下:

  • 登录阿里云控制台,找到容器镜像服务。
  • 创建一个镜像仓库实例(如果还没有)。
  • 在镜像仓库实例的管理页面,找到 “镜像加速器” 标签页。
  • 按照页面上的说明,配置 Docker 镜像加速器。

通常,需要在 /etc/docker/daemon.json 文件中添加以下内容:

json
{
"registry-mirrors": ["https://<你的加速器地址>.mirror.aliyuncs.com"]
}

替换 <你的加速器地址> 为你实际的加速器地址。

保存文件后,重启 Docker 服务:

bash
sudo systemctl restart docker

3. 修改 Docker 数据目录:

默认情况下,Docker 将镜像和容器数据存储在 /var/lib/docker 目录中。 如果该目录所在的磁盘空间不足,可以将其移动到其他磁盘。

修改 Docker 数据目录的步骤如下:

  • 停止 Docker 服务:

    bash
    sudo systemctl stop docker

  • /var/lib/docker 目录中的所有内容复制到新的数据目录。 例如,假设新的数据目录为 /data/docker

    bash
    sudo cp -r /var/lib/docker /data/docker

  • 修改 /etc/docker/daemon.json 文件,添加 data-root 配置项:

    json
    {
    "data-root": "/data/docker"
    }

  • 保存文件后,启动 Docker 服务:

    bash
    sudo systemctl start docker

四、常用 Docker 命令

以下是一些常用的 Docker 命令:

  • docker images: 列出所有已下载的镜像。
  • docker ps: 列出所有正在运行的容器。
  • docker ps -a: 列出所有容器,包括正在运行和已停止的容器。
  • docker run <镜像名称>: 运行一个容器。
  • docker stop <容器ID>: 停止一个容器。
  • docker start <容器ID>: 启动一个已停止的容器。
  • docker rm <容器ID>: 删除一个容器。
  • docker rmi <镜像ID>: 删除一个镜像。
  • docker pull <镜像名称>: 从 Docker Hub 下载一个镜像。
  • docker build -t <镜像名称> .: 使用 Dockerfile 构建一个镜像。
  • docker exec -it <容器ID> bash: 进入一个正在运行的容器的 bash 终端。
  • docker logs <容器ID>: 查看容器的日志。
  • docker-compose up -d: 使用 Docker Compose 启动一个或多个容器 (需要安装 Docker Compose)。
  • docker-compose down: 停止并删除 Docker Compose 启动的容器。

五、Docker 最佳实践

  • 使用 Dockerfile 构建镜像: Dockerfile 是一个包含构建镜像所需指令的文本文件。 使用 Dockerfile 可以方便地重复构建镜像,并实现镜像的自动化构建。
  • 使用最小化镜像: 尽量选择体积小的基础镜像,例如 alpine,以减小镜像的大小,提高下载速度和运行效率。
  • 使用 .dockerignore 文件: .dockerignore 文件用于排除构建镜像时不需要的文件和目录,以减小镜像的大小和构建时间。
  • 使用 Docker Compose 管理多容器应用: Docker Compose 可以定义和管理多容器应用,简化应用的部署和管理。
  • 定期更新 Docker 镜像: 定期更新 Docker 镜像,以获取最新的安全补丁和功能更新。
  • 使用 Docker volumes 存储持久化数据: Docker volumes 用于存储容器的持久化数据,即使容器被删除,数据也不会丢失。

六、故障排除

  • Docker 服务无法启动: 检查 Docker 配置文件是否存在语法错误,并查看系统日志以获取更多信息。
  • 无法下载镜像: 检查网络连接是否正常,并配置 Docker 镜像加速器。
  • 容器无法启动: 检查容器的配置是否正确,并查看容器的日志以获取更多信息。
  • 端口冲突: 确保容器使用的端口没有被其他程序占用。

七、总结

通过本文的详细图文教程,你已经成功地在 CentOS 上安装了最新版本的 Docker。 现在,你可以开始使用 Docker 来构建、运行和管理你的应用程序了。 记住,Docker 是一个强大的工具,掌握它可以极大地提高你的开发和运维效率。 祝你使用愉快! 希望本文能帮助你顺利入门 Docker,并为你在容器化的道路上提供有益的指导。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部