Linux安装docker的前提条件:
- 必须是64位CPU架构的计算机,Docker目前不支持32位CPU;
- 运行Linux3.8或更高版本内核,CentOS时内核必不小于3.10;
- 内核必须支持一种合适的存储驱动,可以是Device Manager、AUFS、vfs、btrfs、以及默认的驱动Device Mapper中的一个;
- 内核必须支持并开启cgroup和命名空间namespace功能。
检查前提条件
内核
通过uname命令来检查内核版本信息。
检查内存驱动是否存在,即检查Device Mapper
版本说明
Docker从1.13.x版本开始,版本分为企业版EE和社区版CE,版本号也改为按照时间线来发布,比如17.03就是2017年3月,有点类似于ubuntu的版本发布方式。
Docker Engine改为Docker CE(社区版)
它包含了CLI客户端、后台进程/服务以及API。用户像以前以同样的方式获取。CE版分为Stable和Edge两种发布方式。
- Stable版本是季度发布方式,比如17.03, 17.06, 17.09
- Edge版本是月份发布方式, 比如17.03, 17.04......
- Edge版本每月发布,提供一个月支持。
- Stable版本每季度发布,提供4个月支持。
Docker Data Center改为Docker EE(企业版)
企业版提供一些额外的收费服务。企业版说明在这里
正常学习和开发个人认为CE已经是足够的了!
卸载旧版本
Docker的旧版本被称为docker
或docker-engine
。 如果安装了这些,请卸载它们以及关联的依赖关系。
sudo yum remove docker docker-common docker-selinux docker-engine
安装Docker CE
可以根据需要以不同的方式安装Docker CE:
设置了Docker的存储库并从中安装,以方便安装和升级任务。 这是推荐的方法。
下载RPM软件包并手动安装并手动管理升级。
这在诸如在没有访问互联网的空隙系统上安装Docker的情况下是有用的。
在测试和开发环境中,使用自动化便利脚本来安装Docker。
使用存储库进行安装
安装存储库
安装必须的包。
yum-utils
提供了yum-config-manager
实用程序,并且device-mapper-persistent-data
和lvm2
需要devicemapper
存储驱动程序。这一步前面的检查如果通过,可以跳过。sudo yum install -y yum-utils device-mapper-persistent-data lvm2
使用以下命令设置稳定存储库。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
可选:启用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,或转到下一步安装特定版本。
sudo yum install docker-ce
警告:如果启用了多个Docker存储库,则在
yum install
或yum update
命令中不安装或更新版本将始终安装尽可能高的版本,这可能不适合您的稳定性需求。
如果这是您第一次从最近添加的存储库安装软件包,系统将提示您接受GPG密钥,并显示密钥的指纹。 验证指纹是否正确,如果是,请接受密钥。 指纹应该匹配
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
Docker已安装但未启动。 Docker组已创建,但没有用户添加到组中。
- 在生产系统上,您应该安装特定版本的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的存储库来安装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
。 在下面的每个命令中,将每次出现的get
与test
进行替换。
警告:在本地运行之前,始终检查从互联网下载的脚本。
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的发行版中,您需要使用适当的systemctl
或service
命令手动启动它。 消息显示,非root用户默认情况下无法运行Docker命令。
使用方便脚本后升级
如果使用便捷脚本安装Docker,则应直接使用程序包管理器升级Docker。 重新运行方便脚本没有任何好处,如果尝试重新添加已经添加到主机的存储库,可能会导致问题。
卸载 Docker CE
- 卸载Docker包
sudo yum remove docker-ce
- 主机上的图mages, containers, volumes或自定义配置文件不会自动删除。 删除所有mages, containers, volumes:
sudo rm -rf /var/lib/docker
必须手动删除任何定义配置文件。