CentOS 7 安装 Docker

10 篇文章 0 订阅
5 篇文章 0 订阅

前言

首先确保你的CentOS版本为7.x 。centos-extras存储库必须启用。 默认情况下启用此存储库,但如果已禁用该存储库,则需要重新启用该存储库。Docker分为企业版和社区版,企业版是收费的,本文讨论的是安装社区版。

卸载旧版本

Docker的旧版本被称为dockerdocker-engine。 如果安装了这些,请卸载它们以及关联的依赖关系。

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 CE之前,需要设置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

3.可选:启用test和edge。 这些存储库包含在上面的docker.repo文件中,但默认情况下禁用。 您可以将它们与稳定版本库一起启用。

sudo yum-config-manager --enable docker-ce-edge

sudo yum-config-manager --enable docker-ce-test

您可以通过运行带有--disable标志的yum-config-manager命令来禁用edge或test库。 要重新启用它,请使用--enable标志。 以下命令禁用edge存储库。

sudo yum-config-manager --disable docker-ce-edge

从Docker 17.06开始,稳定的版本也被推到了edge和test存储库

安装 DOCKER CE

1.安装最新版本的Docker CE,或转到下一步安装特定版本。

sudo yum install docker-ce

警告:如果启用了多个Docker存储库,则在yum installyum update命令中不安装或更新版本将始终安装尽可能高的版本,这可能不适合您的稳定性需求。

如果这是您第一次从最近添加的存储库安装软件包,系统将提示您接受GPG密钥,并显示密钥的指纹。 验证指纹是否正确,如果是,请接受密钥。 指纹应该匹配

060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35

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

2.在生产系统上,您应该安装特定版本的Docker CE,而不是始终使用最新版本。 列出可用的版本。 此示例使用排序-r命令对结果进行排序,版本号由最高到最低,并被截断。

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

docker-ce.x86_64            17.09.ce-1.el7.centos             docker-ce-stable

列表的内容取决于启用哪些存储库,并且将特定于您的CentOS版本(在本示例中由版本的.el7后缀表示)。 选择要安装的特定版本。 第二列是版本字符串。 您可以使用整个版本字符串,但您至少需要包含第一个连字符。 第三列是存储库名称,它指示软件包的存储库以及其稳定性级别。 要安装特定版本,请将版本字符串附加到包名称,并用连字符( - )分隔。

版本字符串是包名称加上直到第一个连字符的版本。 在上面的示例中,完全限定的包名称是docker-ce-17.09.ce

sudo yum install <FULLY-QUALIFIED-PACKAGE-NAME>

3.启动Docker

sudo systemctl start docker

4.通过运行hello-world镜像来验证Docker是否正确安装。

sudo docker run hello-world

此命令下载hello-world镜像并在容器中运行它。 当容器运行时,它打印一条信息消息并退出。

5.处理报错:OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"write /proc/self/attr/keycreate: permission denied\"": unknown.

问题原因及解决办法
   原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:
   1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数:
   docker run -i -t -v /soft:/soft --privileged=true 686672a1d0cc /bin/bash
   2.临时关闭selinux:
   setenforce 0
   3.添加selinux规则,改变要挂载的目录的安全性文本

此处选择2.临时关闭selinux:

如果还是报错可以尝试:yum update 命令 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值