CentOS 7 安装 Docker CE

翻译自 Get Docker CE for CentOS | Docker Docs,以 Docker 官方文档 为准
点击查看我的博客原文

安装前的准备

系统要求

  • 官方推荐使用 CentOS 7维护版本,已经归档的版本不受支持或未经测试
  • 需要启用centos-extrasrepository。在 CentOS 7 中这个仓库是默认启用的,如果之前有将其禁用,则需要重新启用
  • 推荐使用overlay2作为 Docker 的存储驱动

卸载旧版本

旧版本的 Docker 在 CentOS 中的包名为dockerdocker-engine。如果之前安装了 Docker 的旧版本,需要先卸载旧版 Docker 及相关依赖

> 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

yum提示卸载成功没有找到相关包,即可进行下一步操作。

注意/var/lib/docker/目录下的内容,包括镜像、容器、卷组、网络等文件将被保留Docker CE 的新包名为docker-ce

安装 Docker CE

有以下三种方法安装 Docker CE,可根据实际需要选择:

  1. 建立 Docker 仓库:安装过程及后续的更新方便,Docker 官方推荐
  2. 下载 RPM 包手动安装:手动管理更新。适合离线环境
  3. 通过安装脚本自动安装:适合测试及开发环境

方法 1:建立 Docker 仓库

首次安装 Docker CE 前需要建立 Docker repository,之后可通过仓库安装并更新 Docker。

建立仓库

1.安装所需软件包yum-utils提供了yum-config-manager工具,存储驱动devicemapper则依赖于device-mapper-persistent-datalvm2

> sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

2.使用以下命令建立stable版本的 repository

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

3.可选启用edgetest仓库。这些仓库包含在docker.repo文件中,但默认是禁用的。可以将它们与stable仓库共同启用。

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

使用带--disable参数的yum-config-manager命令即可禁用edgetest仓库,使用--enable参数则会重新启用。例如下面的命令将禁用edge仓库:

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

Docker17.06版本开始,stable仓库的 releases 也会推送至edgetest仓库中。
点击此处查看 Docker 官方关于stableedge的说明

安装 Docker CE

1.使用以下命令安装最新版 Docker CE

> sudo yum install docker-ce

如果提示是否接受 GPG 密钥,则需验证密钥指纹是否符合下面的内容,若符合即可点击 accept 继续安装:

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

如果启用了多个 Docker 仓库,并且在yum installyum update命令中没有指明版本,则会安装所有仓库中版本号最新的 Docker

2.要安装指定版本的 Docker CE,则需要从仓库中列出所有可用的版本,再根据需要选择安装:

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

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

此时安装包名的格式为docker-ce-<VERSION STRING>。例如安装18.03.0版本的 Docker CE:

> sudo yum install docker-ce-18.03.0.ce

此时 Docker 应该已经安装完成,但还没有启动。新的用户组docker也已创建,目前为空。

3.启动 Docker

> sudo systemctl start docker

4.运行hello-world镜像以验证 Docker 是否正确安装

> sudo docker run hello-world

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 CE

如需升级 Docker CE,则可根据上述安装教程,选择安装最新版docker-ce,即可完成升级。

方法 2:下载 RPM 包手动安装

安装 Docker CE

如果无法使用 Docker 仓库,可以下载.rpm安装包手动安装 Docker CE

1.前往https://download.docker.com/linux/centos/7/x86_64/stable/Packages/下载对应版本的 RPM 安装包

2.使用yum命令安装 RPM 包

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

3.启动 Docker

> sudo systemctl start docker

4.运行hello-world镜像以验证 Docker 是否正确安装

> sudo docker run hello-world

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 CE

如需升级,则可下载新版本的 RPM 安装包,使用yum upgrade命令升级:

> sudo yum -y upgrade /path/to/package.rpm

方法 3:通过安装脚本自动安装

通过 Docker 提供的一键安装脚本可以在开发环境中快速安装 Docker CE,且无需交互。get.docker.comtest.docker.com 分别对应edgetest版本,脚本源码存放在 docker-install 仓库 中。

Docker 官方不推荐在生产环境中使用安装脚本

下面的示例将使用 get.docker.com 提供的脚本安装 Docker CE 的最新发布版本。如果要安装最新测试版本,只需将脚本替换为 test.docker.com,并将下面示例命令中的get替换为test

> curl -fsSL https://get.docker.com -o get-docker.sh
> sudo sh get-docker.sh

<output truncated>

如果需要让非root用户使用 Docker,则使用以下命令将用户添加至docker用户组

> sudo usermod -aG docker your-user

注销并重新登录,即可生效。之后启动 Docker

> sudo systemctl start docker

运行hello-world镜像以验证 Docker 是否正确安装

> sudo docker run hello-world

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 CE

1. 卸载 Docker 安装包

> sudo yum remote docker-ce

2. 删除相关文件

主机上的镜像、容器、卷组以及自定义的配置文件需要手动删除

> sudo rm -rf /var/lib/docker

参考资料

  1. Get Docker CE for CentOS | Docker Docs
  2. Post-installation steps for Linux | Docker Docs
  3. Docker Docs
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341