卸载旧版本

较旧版本的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 CE:

  • 大多数用户设置Docker的仓库并从中进行安装,以便于安装和升级任务。这是推荐的方法。
  • 有些用户下载RPM软件包并手动安装并完全手动管理升级。这在没有访问互联网的系统上安装Docker的情况下非常有用。
  • 在测试和开发环境中,一些用户选择使用自动便捷脚本来安装Docker。

使用仓库安装

在新主机上首次安装Docker CE之前,需要设置Docker仓库。之后,您可以从仓库安装和更新Docker

设置存储库

  1. 安装所需的包。

    yum-utils提供yum-config-manager实用程序,devicemapper存储驱动程序需要device-mapper-persistent-datalvm2

    $ 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

    可选:启用edgetest存储库。这些存储库包含在上面的docker.repo文件中,但默认情况下处于禁用状态。您可以将它们与稳定存储库一起启用。

    $ 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

    注意:从Docker 17.06开始,稳定版本也会被推送到边缘并测试存储库。

安装DOCKER CE

  1. 安装最新版本

    安装最新版本Docker CE,或转到下一步安装特定版本:

    $ sudo yum install docker-ce

    如果提示接受GPG密钥,请确认指纹符合060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果符合,则接受该指纹。

    运行以上命令安装后,Docker已安装但尚未启动。并已创建docker组,但未向该组添加任何用户。

  2. 安装特定版本

    • 要安装特定版本Docker CE,可列出repo中的可用版本,然后选择并安装

      $ yum list docker-ce --showduplicates | sort -r
      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
      docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
      docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable

      返回的列表取决于启用的仓库,并且特定于您的CentOS版本(在此示例中以.el7后缀表示CentOS7)。

    • 通过其完全限定的包名称安装特定版本

      包名称(docker-ce)加上版本字符串(第2列),中间用连字符( - )分隔,

      例如,docker-ce-18.06.1.ce

      $ sudo yum install docker-ce-18.06.1.ce

      运行以上命令安装后,Docker已安装但尚未启动。并已创建docker组,但未向该组添加任何用户。

启动测试Docker

  1. 启动Docker

    $ sudo systemctl start docker
  2. 通过运行hello-world映像验证是否正确安装了docker。

    $ sudo docker run hello-world

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

    如果网络下载失败,可能需要配置国内加速器,或者需要使用代理连接,可以通过下面的Linux安装后配置进行配置

升级DOCKER CE

要升级Docker CE,选择特定版本安装新版本或选择安装最新版本。

使用包安装

如果您无法使用Docker存储库来安装Docker,可以下载适用于您的发行版的.rpm文件并手动安装。每次要升级Docker时都需要下载新文件。

安装Docker CE

  • CentOS

    1. 转到https://download.docker.com/linux/centos/7/x86_64/stable/Packages/并下载要安装的Docker版本的.rpm文件。

      注意:要安装edgetest包,请将上述URL中的单词stable更改为edgetest

    2. 安装Docker CE,将下面的路径更改为Docker软件包的路径。

      Docker的``docker.rpm`包在用户主目录下

      $ sudo yum install ~/docker.rpm

      Docker已安装但尚未启动。已创建docker组,但未向该组添加任何用户。

升级DOCKER CE

要升级Docker CE,请下载较新的软件包文件并重复安装过程,使用yum -y upgrade,而不是yum -y install,并指向新软件包。

卸载 Docker CE

卸载Docker包:

$ sudo yum remove docker-ce

主机上的图像,容器,卷或自定义配置文件不会自动删除。

要删除所有图像,容器和卷:

$ sudo rm -rf /var/lib/docker

二、Docker安装后配置

HTTP/HTTPS代理

如果您使用HTTPHTTPS代理服务器,例如在公司设置中,您需要在Docker systemd service文件中添加此配置。

  1. 为Docker服务创建一个 systemd多级目录:

    $ sudo mkdir -p /etc/systemd/system/docker.service.d
  2. 创建一个名为/etc/systemd/system/docker.service.d/http-proxy.conf的文件。添加HTTP_PROXY环境变量:

    [Service]
    Environment="HTTP_PROXY=http://username:password@0.0.0.1:80/"

    或者,如果您在HTTPS代理服务器后面,创建一个名为/etc/systemd/system/docker.service.d/https-proxy.conf的文件,添加HTTPS_PROXY环境变量:

    [Service]
    Environment="HTTPS_PROXY=https://username:password@0.0.0.1:80/"
  3. 如果您有自己的私有Docker仓库,而无需代理,您可以通过NO_PROXY环境变量指定它们:

    [Service]
    Environment="HTTP_PROXY=http://username:password@0.0.0.1:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"

    或者, 如果您在 HTTPS 代理服务器后面添加:

    [Service]
    Environment="HTTPS_PROXY=https://username:password@0.0.0.1:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
  4. 刷新更改:

    $ sudo systemctl daemon-reload
  5. 重启Docker:

    $ sudo systemctl restart docker
  6. 验证配置已经加载:

    $ systemctl show --property=Environment docker
    Environment=HTTP_PROXY=http://username:password@0.0.0.1:80/

    或者:

    $ systemctl show --property=Environment docker
    Environment=HTTPS_PROXY=https://username:password@0.0.0.1:80/

以非root身份管理Docker

Docker daemon绑定到Unix socket而不是TCP端口。默认情况下,Unix socket由用户root拥有,而其他用户只能使用sudo访问它。 Docker daemon始终以root用户身份运行。

如果您不想在docker命令前加上sudo,可以创建一个名为dockerUnix组并向其添加用户。当Docke启动时,它会创建一个可由docker组成员访问的Unix socket

警告

docker组授予与root用户等效的权限。

有关这将如何影响系统安全性的详细信息,请参阅Docker Daemon Attack Surface

要创建docker组并添加您的用户:

  1. 创建docker组

    $ sudo groupadd docker
  2. 将您的用户添加到docker组

    $ sudo usermod -aG docker $USER
  3. 注销并重新登录,以便您的组成员身份生效。

  4. 验证您是否可以在没有sudo的情况下运行docker命令.

    $ docker run hello-world

    如果容器运行,它会打印消息并退出,说明设置生效

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

    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

镜像加速

由于Docker Hub的服务器在国外,镜像的下载速度比较慢,可以使用国内提供的免费镜像服务,国内免费镜像服务有阿里云和DaoCloud等有提供:

  • 阿里云

    1. 注册登录后,进入控制台,在产品与服务中搜索容器镜像服务进入,在镜像加速器有阿里云提供给个人的加速器地址
    2. 按照操作文档选择对应的服务器类型操作,
  • DaoCloud

    1. 注册登录后,点击加速器图标

    2. 进入页面后,复制内容到Shell终端运行

随系统启动而启动

  • systemd

    开启随系统启动

    $ sudo systemctl enable docker

    关闭随系统启动,改用disable。

    $ sudo systemctl disable docker

    查看状态

    $ sudo systemctl is-enabled docker

一、安装Docker CE的更多相关文章

  1. 在Ubuntu14.04下安装Docker CE(1) - repository篇

    从2017年3月开始,Docker开始分为社区版本和企业版,也就是Docker CE和Docker EE, 原来Ubuntu14.04下,通过sudo apt-get install docker.i ...

  2. Ubuntu 安装 Docker CE(社区版)

    参考自 https://yeasy.gitbooks.io/docker_practice/install/ubuntu.html#ubuntu-1604- docker-io 是以前早期的版本,版本 ...

  3. 详细介绍Ubuntu 16.04系统环境安装Docker CE容器的过程

    由于项目的需要,我们在很多软件配置环境中需要用到Docker容器,这个时候我们可以用自己的VPS主机搭建.在这篇文章中,笔者将会利用Ubuntu 16.04系统环境安装Docker CE容器的过程.如 ...

  4. Centos7安装Docker CE

      每次安装Docker都要去找文档,或者每次安装的都不一样,还是要好好管理自己的这些东西,下次用的时候可以省很多的时间   Docker的早期版本称为docker或docker-engine:现在的 ...

  5. ubuntu16.04 在线安装docker ce

    官方文档:https://docs.docker.com/install/linux/docker-ce/ubuntu/   ubuntu创建普通用户: adduser dk001 给该用户添加sud ...

  6. Ubuntu18.04上安装Docker CE

    建立 REPOSITORY 1.更新索引包 更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的地址,这样才能获取到最新的软件包 sudo ...

  7. Ubuntu 安装 Docker CE

    注:本文转载自<Docker入门> 警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. 准备工作 系统要求 Docker CE 支持以下版本的 ...

  8. centos7 下安装Docker CE

    前提条件 操作系统要求 要保证centos-extrasrepository开启(enabled).默认处于开启状态. 推荐使用overlay2存储驱动 卸载老版本 $ sudo yum remove ...

  9. CentOS_mini下安装docker 之 安装docker CE

    警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker. 原文地址:https://yeasy.gitbooks.io/docker_practice/inst ...

  10. CentOS安装Docker CE

    安装Docker CE(免费版) docker EE企业版您可以根据需要以不同方式安装Docker CE: 大多数用户 设置Docker的存储库并从中进行安装,以便于安装和升级任务.这是推荐的方法. ...

随机推荐

  1. Html 常见标签,css基础样式,css的浮动和清流,浏览器的兼容

    1.html模板<!DOCTYPE html><html><head> <meta charset="UTF-8"> <tit ...

  2. 剑指offer第40题

    package com.yan.offer; /** * 题目描述: * * 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. * * @author Ya ...

  3. 6.44 以元素值为x的节点为根的子树的深度(递归实现)

    题目:求二叉树中以元素值为x的节点为根的子树的深度 #include<cstdio> #include<malloc.h> typedef struct btree{ char ...

  4. Windows下MariaDB数据搬家问题

    背景:公司买了一台服务器要将原来老服务器数据库数据导入新的服务器上,两台服务器环境如下 做好准备后开始实施,老数据库进行停库 找到MariaDB的安装目录下的整data目录进行拷贝,然后到新服务器进行 ...

  5. UML-如何使用GRASP进行对象设计?

    1.GRASP有以下模式 2.创建者 问题:谁创建某类的新实例? 方案:(我认为) 聚集:物理模型下,由父类创建子类.(父类聚集了子类的集合) 包含:子类包含父类对象 专家模式:提供初始化数据的类来创 ...

  6. PowerDesigner 表格导出为excel(转载)

    选中tablesctrl + shift +x 然后运行脚本 '******************************************************************** ...

  7. JavaScript学习总结(八)

    这一节结束,我们的JavaScript学习总结系列文章第一阶段就要结束了,今后会适当的补充一些高级的内容,敬请期待. 好了,废话不说进入这一节的学习. 联动框 联动框,实在是太常见了.比如淘宝,我们选 ...

  8. 23. docker 数据持久化 bind mounting

    1. bind mounting 和 data volume 的区别 data volume 需要在 Dockerfile 定义 Volume bind mounting 只需要 -v 指明 容器外部 ...

  9. 计算机网络(7): 传输层TCP和UDP以及TCP的工作方式

    UDP:无连接:不保证可靠:面向报文的: TCP:面向连接:提供可靠交付:面向字节流(把应用层的数据分包,每个包装一些字节:不关心应用层给的包多大,而是根据网络状况,窗口大小决定) TCP报文: 序号 ...

  10. 如何快速完成一份学术型PPT

    大多人都知道有模板这么个东西. 但是拿到手却不会运用,所以只得急的找人帮忙. 毕竟一套模板的素材图表和你要展示的内容,很多都太不一样. 这种情况,怎么办?下面就来告诉你.   选中一套模版后,放大看看 ...