CentOS安装Docker

安装前准备

CentOS版本

要安装Docker Engine,你需要以下CentOS版本中的一个维护版本:

  • CentOS 7
  • CentOS 8 (stream)
  • CentOS 9 (stream)

centos-extras 仓库必须被启用。这个仓库默认是启用的,但如果你已经禁用了它,你需要重新启用它。

删除旧版本

旧版本的Docker以dockerdocker-engine为名。在尝试安装新版本之前,请卸载任何此类旧版本,以及相关的依赖关系。

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

当你卸载Docker时,存储在/var/lib/docker/中的镜像、容器、数据卷和网络不会自动删除。

通过Yum进行安装

在你第一次在新主机上安装Docker Engine之前,你需要设置Docker仓库。之后,你可以从存储库中安装和更新Docker。

设置存储库

安装yum-utils软件包(提供yum-config-manager工具),并设置资源库。

$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装Docker Engine

  1. 安装Docker Engine、containerd和Docker Compose:
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

如果提示接受GPG密钥,验证指纹是否与060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35相匹配,如果是,就接受它。

这条命令安装了Docker,但它并没有启动Docker。它还创建了一个docker组,但是,默认情况下,它没有添加任何用户到该组。

  1. 启动Docker
$ sudo systemctl start docker
  1. 通过运行hello-world镜像,验证Docker的安装是否成功。
$ sudo docker run hello-world

这个命令会下载一个测试镜像并在一个容器中运行。当容器运行时,它会打印出一条确认信息并退出。

现在你已经成功安装并启动了Docker Engine。

使用RPM包进行安装

如果你不能使用Docker的rpm仓库来安装Docker Engine,你可以下载符合你期望的版本的.rpm文件并手动安装。每次你想升级Docker Engine时,你都需要下载一个新的文件。

  1. 进入Docker官网下载界面,选择你的CentOS版本。然后浏览x86_64/stable/Packages/,下载你要安装的Docker版本的.rpm文件。

  2. 安装Docker Engine,将下面的路径改为你下载Docker包的路径。

$ sudo yum install /path/to/package.rpm

Docker已经安装,但没有启动。创建了docker组,但没有用户被添加到该组。

  1. 启动Docker
$ sudo systemctl start docker
  1. 通过运行hello-world镜像,验证Docker Engine的安装是否成功。
$ sudo docker run hello-world

这个命令会下载一个测试镜像并在一个容器中运行。当容器运行时,它会打印出一条确认信息并退出。

现在你已经成功安装并启动了Docker Engine。

使用脚本安装

Docker在https://get.docker.com/,提供了一个方便的脚本,可以将Docker非交互式地安装到开发环境。不建议在生产环境中使用该便利脚本,但它对创建符合你需求的配置脚本很有用。该脚本的源代码是开源的,你可以在GitHub上的docker-install找到它。

在本地运行从互联网上下载的脚本之前,一定要检查它们。在安装之前,要让自己熟悉潜在的风险和便利脚本的限制:

  • 该脚本需要rootsudo权限才能运行。
  • 该脚本试图检测你的Linux发行版和版本,并为你配置你的软件包管理系统。
  • 脚本不允许你自定义大多数安装参数。
  • 脚本在安装依赖关系和建议时不要求确认。这可能会安装大量的软件包,这取决于你主机的当前配置。
  • 默认情况下,该脚本会安装Docker、containerd和runc的最新稳定版本。当使用该脚本配置机器时,这可能会导致Docker的主要版本意外升级。在部署到生产系统之前,一定要在测试环境中测试升级。
  • 这个脚本并不是用来升级现有的Docker安装的。当使用该脚本更新现有的安装时,依赖关系可能不会被更新到预期的版本,从而导致过时的版本。

你可以用-dry-run选项来运行脚本,了解脚本在被调用时将运行哪些步骤:

点击查看代码
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh --dry-run

以下这个例子是从https://get.docker.com/下载脚本,并运行该脚本以在Linux上安装最新的Docker稳定版:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>

你现在已经成功安装并启动了Docker Engine。在基于Debian的发行版上,docker服务会自动启动。在基于RPM的发行版上,如CentOS、Fedora、RHEL或SLES,你需要使用适当的systemctlservice命令手动启动它。如信息所示,非root用户默认不能运行Docker命令。

posted @ 2023-05-30 20:12  洗洗早睡啦  阅读(278)  评论(0编辑  收藏  举报