Centos7中Docker的安装

卸载旧版本

较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。

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

如果yum报告未安装这些软件包,此时就OK了。
/var/lib/docker/的内容(包括映像,容器,卷和网络)被保留。 Docker Engine-Community软件包现在称为docker-ce。

使用存储库安装

在新主机上首次安装Docker Engine-Community之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker

设置存储库
  1. 安装所需的软件包。yum-utils提供了yum-config-manager 效用,并device-mapper-persistent-datalvm2由需要 devicemapper存储驱动程序。
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

结果:
在这里插入图片描述
2.使用以下命令来设置稳定的存储库。

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

结果:
在这里插入图片描述

安装DOCKER ENGINE - COMMUNITY

  1. 安装最新版本的Docker Engine-Communitycontainerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io

结果:
在这里插入图片描述

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

  1. 要安装特定版本的Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:

(1).列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序,并被截断:

$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable

返回的列表取决于启用的存储库,并且特定于你的CentOS版本(.el7在此示例中以后缀表示)。
(2).通过其完全合格的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如,docker-ce-18.09.1

$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

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

  1. 启动Docker。
$ sudo systemctl start docker
  1. 通过运行hello-world 映像来验证是否正确安装了Docker Engine-Community
$ sudo docker run hello-world

此命令下载测试图像并在容器中运行。容器运行时,它会打印参考消息并退出。


Docker Engine-Community已安装并正在运行。您需要使用sudo来运行Docker命令。继续进行安装后的配置,以允许非特权用户运行Docker命令以及其他可选配置步骤。

以非root用户身份管理Docker

Docker守护程序绑定到Unix套接字而不是TCP端口。默认情况下,Unix套接字由用户拥有root,其他用户只能使用来访问它sudoDocker守护程序始终以root用户身份运行。

如果您不想以sudo作为docker命令的开头,请创建一个名为dockerUnix组并将用户添加到其中。 Docker守护程序启动时,它将创建一个可由Docker组成员访问的Unix套接字。

要创建docker组并添加用户,请执行以下操作:

  1. 创建docker组。
$ sudo groupadd docker
  1. 将用户添加到该docker组。
$ sudo usermod -aG docker $USER
  1. 注销并重新登录,以便重新评估您的组成员身份。
    如果在虚拟机上进行测试,则可能需要重新启动虚拟机以使更改生效。
    在桌面Linux环境(例如X Windows)上,完全注销会话,然后重新登录。
    在Linux上,您还可以运行以下命令来激活对组的更改:
$ newgrp docker 
  1. 确认你可以在没有sudo的情况下运行docker命令。
$ docker run hello-world

此命令下载测试镜像并在容器中运行。 容器运行时,它会打印参考消息并退出。

如果最初在将用户添加到docker组之前使用sudo运行Docker CLI命令,则可能会看到以下错误,这表明〜/ .docker /目录是由于sudo命令而使用不正确的权限创建的。

WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied

要解决此问题,请删除~/.docker/目录(会自动重新创建目录,但是所有自定义设置都会丢失),或者使用以下命令更改其所有权和权限:

$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R
发布了14 篇原创文章 · 获赞 18 · 访问量 747

猜你喜欢

转载自blog.csdn.net/qq_37868757/article/details/103616057