前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CentOS 7 安装 Docker CE

CentOS 7 安装 Docker CE

作者头像
苏易北
修改于 2019-01-11 02:40:35
修改于 2019-01-11 02:40:35
1.4K0
举报
文章被收录于专栏:Linux 杂货铺Linux 杂货铺

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

安装前的准备

系统要求

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

卸载旧版本

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

代码语言:txt
AI代码解释
复制
> 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

代码语言:txt
AI代码解释
复制
> sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

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

代码语言:txt
AI代码解释
复制
> sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

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

代码语言:txt
AI代码解释
复制
> sudo yum-config-manager --enable docker-ce-edge
> sudo yum-config-manager --enable docker-ce-test

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

代码语言:txt
AI代码解释
复制
> sudo yum-config-manager --disable docker-ce-edge

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

安装 Docker CE

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

代码语言:txt
AI代码解释
复制
> sudo yum install docker-ce

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

代码语言:txt
AI代码解释
复制
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35

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

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

代码语言:txt
AI代码解释
复制
> 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:

代码语言:txt
AI代码解释
复制
> sudo yum install docker-ce-18.03.0.ce

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

3.启动 Docker

代码语言:txt
AI代码解释
复制
> sudo systemctl start docker

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

代码语言:txt
AI代码解释
复制
> 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 包

代码语言:txt
AI代码解释
复制
> sudo yum install /path/to/package.rpm

3.启动 Docker

代码语言:txt
AI代码解释
复制
> sudo systemctl start docker

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

代码语言:txt
AI代码解释
复制
> 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命令升级:

代码语言:txt
AI代码解释
复制
> 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

代码语言:txt
AI代码解释
复制
> curl -fsSL https://get.docker.com -o get-docker.sh
> sudo sh get-docker.sh

<output truncated>

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

代码语言:txt
AI代码解释
复制
> sudo usermod -aG docker your-user

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

代码语言:txt
AI代码解释
复制
> sudo systemctl start docker

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

代码语言:txt
AI代码解释
复制
> 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 安装包

代码语言:txt
AI代码解释
复制
> sudo yum remote docker-ce

2. 删除相关文件

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

代码语言:txt
AI代码解释
复制
> sudo rm -rf /var/lib/docker

参考资料

Get Docker CE for CentOS | Docker Docs

Post-installation steps for Linux | Docker Docs

Docker Docs

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
老鼠与毒药
有1000瓶药水,其中一瓶是有毒的,老鼠喝掉药水后,毒性会在24小时后发作。那最少需要多少只老鼠,能够在24小时后找出哪一瓶有毒呢?
小K算法
2021/05/31
8750
面试题十五期-一个腾讯的面试题~biu
1、1000瓶药水,其中至多有1瓶剧毒,现在给你10只小狗在24小时内通过小狗试药的方式找出哪瓶药有毒或者全部无毒(小狗服完药20小时后才能判断是否中毒)。
测试小兵
2019/11/21
5970
面试题十五期-一个腾讯的面试题~biu
一道刚遇到的面试题,面试官说答不出正常
大家周末愉快,今天分享一道很有意思的面试题目。 面试官问这道题之前还说:不用紧张,基本上没啥人可以答出来,你就发散着想想就行。 好了,废话不多说了,我们直接上题。 题目 现在有 10 只小白鼠和 1000 支药水,1000 支药水中有且仅有一支药水有毒,如果小白鼠喝下毒药,那么毒发的时间是两小时。 现在只给你两小时的时间,请问如何用这 10 只小白鼠测出哪支药水有毒?(忽略小白鼠喝药的时间)。 思考 当时听完这题,我第一反应是:这题是不是在逗我? 就 10 只小白鼠,喝 1000 支药水,那么一只小白鼠肯定
程序员鱼皮
2023/03/29
3390
一道刚遇到的面试题,面试官说答不出正常
尾部的0和小老鼠喝药
因此就有解法1: 1.对每个数字依次除以5,如果余数为0则+1,如果得到的商除以5余数仍为0则再加一,直到余数不为0再继续下一数字。 实例:
呼延十
2019/07/01
5560
从老鼠试毒问题来看二分法
很多人对于二分法的理解比较片面,之前碰到一个题目 " 从一个先升序后降序的数列中,比如 1 2 3 7 4 3 2 中运用二分法去查找一个给定的元素",很多人说根本不能二分,因为没有排序。其实 这道题完全可以使用二分查找进行解答, 如果你觉得不可以的话,很可能对二分法理解还比较片面。 这里以另外一个更加有趣(至少我认为)的例子来讲解一下二分法。
lucifer210
2019/12/24
1.7K0
[oeasy]python0083_十进制数如何存入计算机_八卦纪事_BCD编码_Binary_Coded_Decimal
编码进化 回忆上次内容 上次 研究了 视频终端的 演化 从VT05 到 VT100 从 黑底绿字 到 RGB 24位真彩色 形成了 VT100选项 从而 将颜色 数字化 了 生活中我们更常用
oeasy
2023/02/14
3400
[oeasy]python0083_十进制数如何存入计算机_八卦纪事_BCD编码_Binary_Coded_Decimal
【春节特辑】神奇的二进制
有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有 1 瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?
五分钟学算法
2019/09/03
6940
【春节特辑】神奇的二进制
老鼠和毒药的问题
  有1000只一模一样的瓶子,编号1-1000。其中999瓶是水,一瓶是看起来像水的毒药。只要老鼠喝下一小口毒药,一天后则死亡。现在,你有7只老鼠和一天的时间,如何检验出哪个号码瓶子里是毒药?
Wu_Candy
2022/07/04
1K0
老鼠和毒药的问题
薛定谔的猪
有1000个瓶子里面装满了水,其中1瓶里面被加入了毒药,但是滴入毒药的水在外观上看和普通水是一模一样的,也就是说这1000个瓶子是分不清哪瓶是装有毒药的,除非把装有毒药的水喝进肚子里。现在有一只可怜的猪可以用来实验,将其中一瓶水喂给这只猪喝,如果猪毒发身亡了,说明这瓶水有毒。猪并不需要喝完整瓶水,只需喝到一小口,毒性就会发作,如果水是有毒的话。
兜兜转转
2023/03/08
5370
薛定谔的猪
5-进制
本文目录 一、十进制 二、二进制 三、八进制 四、十六进制 五、进制总结 六、变量与进制
Python知识大全
2020/02/13
5620
《Java从入门到失业》第一章:计算机基础知识(1.1):二进制和十六进制
  最近7年来的高强度工作和不规律的饮食作息,压得我有些喘不过气,身体也陆续报警。2018年下半年的一场病,让我意识到了这个问题的严重性,于是开始强制自己有规律饮食和作息,并辅以健身锻炼,不到2年的时间,长期的腰痛和左肩膀痛竟然无药自愈,慢性胃炎也得到了缓解,于是我下定决心要坚持下去。
用户7801119
2020/09/27
6300
计算机基础(2)——进制与进制转换
进制也就是进位计数制,是人为定义的带进位的计数方法。 对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
绿水长流z
2025/01/03
1760
计算机基础(2)——进制与进制转换
小朋友学C语言(18):二进制
一、十进制与二进制 我们日常所用到的计数方式,是十进制(数字用0,1,2,3,4,5,6,7,8,9这十个数字来表示)。 十进制的进位规则是”逢十进一”。 比如零、一、二、三、四、五、六、七、八、九都是用一位数来表示。再进一的话,是十。十无法用1位数来表示,所以要”进一”,用两位数来表示,即10。 19进一是二十,无法以1X来表示,所以得用20来表示。 99进一是一百,无法用9X来表示,所以得用100来表示。 计算机用二进制(数字用0和1来表示)来存储数据。二进制的进位规则是“逢二进一”。 零用0来表
海天一树
2018/04/17
1K0
小朋友学C语言(18):二进制
【进制转换】《进制大乱斗,谁才是真正的赢家!》
进制转换是计算机科学中的基础概念,也是编程和数字逻辑设计中的重要内容。掌握进制转换对于理解计算机内部运算机制、进行硬件设计和编写高效代码至关重要。本文将详细介绍各种进制及其相互转换方法。
LuckiBit
2024/12/11
2320
计算机常用的数制及编码
我们习惯使用的十进制数是由0、1、2、3、4、5、6、7、8、9十个不同的符号组成,每一个符号处于十进制数中不同的位置时,它所代表的实际数值是不一样的。例如1999年可表示成
张哥编程
2024/12/17
1720
C语言十进制与二进制的相互转换
计算机只认识二进制数(0和1),因为计算机是机器,它由逻辑电路组成,而逻辑电路一般情况下有两种状态,这两种状态分别是开关的闭合和断开,逻辑电路的这两种状态刚好就对应了二进制的 "1" 和 "0” 。常见的进制数有二进制、八进制、十进制、十六进制。在不同的进制之间还可以相互转换,如:二进制转十进制,十进制转二进制等等。今天我来给大家分享如何运用C语言编写代码来实现进制数之间的互相转换。
程序员小顺
2021/10/13
2.4K0
[c/c++后台开发面经] 京东面经(含答案)
1000瓶无色无味的药水,其中有一瓶毒药,10只小白鼠拿过来做实验。喝了无毒的药水第二天没事儿,喝了有毒的药水后第二天会死亡。如何在一天之内(第二天)找出这瓶有毒的药水?
C语言与CPP编程
2020/12/02
9250
[c/c++后台开发面经] 京东面经(含答案)
你说你会位运算,那你用位运算来解下八皇后问题吧
位运算在生产或算法解题中并不常见,不过如果你用得好,可以达到事半功倍的效果,而且位运算用得好,也可以极大地提升性能,如果在生产或面试中能看到使用位运算来解题,会让人眼前一亮,觉得你还是有点逼格的,巧用位运算,不仅会提升性能,还会让代码的可读性更好,达到四两拨千斤的效果,今天我们就来学学位运算在解题中的一些技巧,最后会用位运算来看看怎么解八皇后这道大 Boss 题,相信你看完肯定会有收获!
kunge
2020/03/26
9230
你说你会位运算,那你用位运算来解下八皇后问题吧
【BLE MIDI】MIDI 文件格式分析总结 ★★★
这个 mid 文件很简单 , 但是麻雀虽小 , 五脏俱全 , 其中有所有的必须的 midi 文件头 , midi 轨道头 , 时间标志 , 等信息 ;
韩曙亮
2023/03/29
1.7K0
【BLE MIDI】MIDI 文件格式分析总结 ★★★
二进制,八进制,十进制,十六进制数之间的转换方式
我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。
岳泽以
2022/10/26
1.9K0
二进制,八进制,十进制,十六进制数之间的转换方式
推荐阅读
相关推荐
老鼠与毒药
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档