CentOS 7 安装 Docker

前言

首先确保你的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(CE代表社区版)

您可以根据需要以不同的方式安装Docker CE:

  • 大多数用户设置了Docker的存储库并从中安装,以方便安装和升级任务。 这是推荐的方法。
  • 某些用户下载RPM软件包并手动安装并手动管理升级。 这在诸如在没有访问互联网的空隙系统上安装Docker的情况下是有用的。
  • 在测试和开发环境中,一些用户选择使用自动化便利脚本来安装Docker。

使用存储库进行安装

在新的主机上首次安装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镜像并在容器中运行它。 当容器运行时,它打印一条信息消息并退出。

Docker CE已安装并运行。 您需要使用sudo来运行Docker命令。 继续执行Linux安装后,允许非特权用户运行Docker命令和其他可选配置步骤。

升级DOCKER CE

要升级Docker CE,请按照安装说明进行操作,选择要安装的新版本。

从包装中安装

如果您不能使用Docker的存储库来安装Docker,则可以下载您的版本的.rpm文件并手动安装。 每次要升级Docker时,都需要下载一个新文件。

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

要安装edge包,请将上述URL中的stable更改为edge。

2.安装Docker CE,将下面的路径更改为您下载Docker程序包的路径。

sudo yum install /path/to/package.rpm

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

3.启动Docker

sudo systemctl start docker

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

sudo docker run hello-world

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

Docker CE已安装并运行。 您需要使用sudo来运行Docker命令。 继续执行Linux的安装后步骤,以允许非特权用户运行Docker命令和其他可选配置步骤。

升级Docker

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

使用便利脚本进行安装

Docker在get.docker.com和test.docker.com上提供了方便的脚本,用于将Docker CE的稳定和测试版本,快速、非交互式安装到开发环境中。 脚本的源代码位于docker-install存储库中。 不建议在生产环境中使用这些脚本,您应该在使用这些脚本之前了解潜在的风险:

  • 脚本需要root或sudo权限才能运行。 因此,在运行脚本之前,应仔细检查和审核脚本。
  • 这些脚本尝试检测您的Linux发行版和版本,并为您配置您的软件包管理系统。 此外,脚本不允许您自定义任何安装参数。 这可能导致不受支持的配置,无论是从Docker的角度还是从您自己的组织的准则和标准。
  • 脚本安装包管理器的所有依赖关系和建议,而不要求确认。 这可能会安装大量的软件包,具体取决于您的主机的当前配置。
  • 如果Docker已经使用其他机制安装在主机上,则不要使用便利脚本。

此示例使用get.docker.com上的脚本在Linux上安装最新的Docker CE版本。 要安装最新的测试版本,请改用test.docker.com。 在下面的每个命令中,将每次出现的gettest进行替换。

警告:在本地运行之前,始终检查从互联网下载的脚本。

 curl -fsSL get.docker.com -o get-docker.sh
 sudo sh get-docker.sh

<output truncated>

If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group will grant the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.

Docker CE已安装。 它在基于DEB的发行版上自动启动。 在基于RPM的发行版中,您需要使用适当的systemctlservice命令手动启动它。 消息显示,非root用户默认情况下无法运行Docker命令。

使用方便脚本后升级

如果您使用便捷脚本安装Docker,则应直接使用您的程序包管理器升级Docker。 重新运行方便脚本没有任何好处,如果尝试重新添加已经添加到主机的存储库,可能会导致问题。

卸载 Docker CE

1.卸载Docker包

sudo yum remove docker-ce

2.主机上的mages, containers, volumes或自定义配置文件不会自动删除。 删除所有mages, containers, volumes:

sudo rm -rf /var/lib/docker

您必须手动删除任何定义配置文件。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

31510
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2547
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

2958
来自专栏杨龙飞前端

scrollto 到指定位置

2494
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2635
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2707
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3105
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4848
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4708
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2050

扫码关注云+社区