本文记录Docker分别在以下环境中的安装步骤
- Windows 10
- CentOS 6
- CentOS 7
Docker 简介
Docker 分为社区版和企业版,两者区别如下:
Windows 10 安装Docker
Windows 版 Docker 需要运行在一个安装了64位Windows 10 操作系统的计算机上,通过启动一个独立的引擎来提供Docker 环境。
Windows 版 Docker 是一个社区版本(Community Edition,CE)的应用,并不是为生产环境设计的。
Windows 版 Docker 在某些版本特性上可能是延后支持的。因为Docker公司对该产品的定位是稳定性第一,新特性其次。
1. 环境要求
- Windows 10 Pro / Enterprise / Education(1607 Anniversary Update、Build 14393 或者更新的版本)
- Windows 必须是64位的版本
- 启用Windows 的Hyper-V 和 容器特性
2. BIOS中开启硬件虚拟化支持
如何进入BIOS,不同的厂商方法不同,一般是F12、F8、F1、ESC等,具体自行百度即可。
找到“Virtualization”设置
修改为Enabled
如何确认是否已开启虚拟化
同时按Ctrl + Shift + Esc 进入任务管理器,点击性能、CPU,查看是否已开启虚拟化
3. 启用Hyper-V 和 容器特性
进入程序和功能,点击“启用或关闭Windows功能”
重启系统!
4. 安装Docker
下载链接:https://www.docker.com/products/docker-desktop
点击“Download for Windows”,会跳转至Docker hub,使用Docker ID登录进行下载。没有Docker ID的话可以直接注册一个。
下载完之后,直接双击运行即可。
可以看到Docker已经启动了,关于Docker for Windows 的使用,下一篇博客中会写到(现在还没写呢,争取早日写完)。
CentOS 6 安装Docker
0. dcoker-io、docker-ce、docker-ee的区别
- docker-io是旧版本,版本号为1.x(最新到1.13)
- 2017年02月,docker-io分为了docker-ce、docker-ee,版本号以YY.MM-xx格式记录(最新到19.03.3)
1. 环境要求
docker-ce必须安装在CentOS 7 中,CentOS 6想安装docker,有两个选择。
- 升级CentOS 6 的内核至3.10以上(CentOS 6 的内核版本为2.6)
- 安装旧版本的docker-io
升级内核会对生产环境造成严重影响,禁止直接升级生产环境内核版本。
留给我们的只有安装旧版本docker-io这条路。
2. 离线安装docker-io
由于CentOS 6 自带的epel源中不包含docker-io,哪怕使用yum install epel-release后,仍然没有docker-io,并且国内各大开源镜像站中也没有。
只能通过离线安装(rpm方式安装,和yum一样,唯一不同就是要手动安装很多依赖)
国内常用开源镜像站:(这些epel中都没有docker-io)
阿里:mirrors.aliyun.com
网易:mirrors.163.com
清华大学:mirrors.tuna.tsinghua.edu.cn
中科大:http://mirrors.ustc.edu.cn
浙大:mirrors.zju.edu.cn
华中科技大学:mirror.hust.edu.cn
上海交大:ftp.sjtu.edu.cn
3. 安装包及依赖准备
下载链接:http://www.rpmfind.net/linux/rpm2html/search.php?query=docker
系统环境 | rpm包版本 |
---|---|
CentOS 6.10 for x86_64 | libcgroup-0.40.rc1-26.el6.x86_64.rpm |
Extras Packages for Enterprise Linux 6 for x86_64 | lxc-libs-1.0.11-1.el6.x86_64.rpm |
Extras Packages for Enterprise Linux 6 for x86_64 | lua-alt-getopt-0.7.0-1.el6.noarch.rpm |
Extras Packages for Enterprise Linux 6 for x86_64 | lua-filesystem-1.4.2-1.el6.x86_64.rpm |
Extras Packages for Enterprise Linux 6 for x86_64 | lua-lxc-1.0.11-1.el6.x86_64.rpm |
Extras Packages for Enterprise Linux 6 for x86_64 | lxc-1.0.11-1.el6.x86_64.rpm |
Device-mapper shared library CentOS 6.10 for x86_64 | device-mapper-libs-1.02.117-12.el6_9.1.x86_64.rpm |
CentOS 6 | docker-io-1.7.1-2.el6.x86_64.rpm |
4. 安装docker-io
将docker和依赖的rpm包上传至服务器,使用rpm -ivh进行安装,lxc-libs要先安装
[root@localhost docker-io-1.7.1]# rpm -ivh lxc-libs-1.0.11-1.el6.x86_64.rpm
[root@localhost docker-io-1.7.1]# rpm -ivh lua-lxc-1.0.11-1.el6.x86_64.rpm
[root@localhost docker-io-1.7.1]# rpm -ivh lxc-1.0.11-1.el6.x86_64.rpm
[root@localhost docker-io-1.7.1]# rpm -ivh libcgroup-0.40.rc1-26.el6.x86_64.rpm
[root@localhost docker-io-1.7.1]# rpm -ivh lua-alt-getopt-0.7.0-1.el6.noarch.rpm
[root@localhost docker-io-1.7.1]# rpm -ivh lua-filesystem-1.4.2-1.el6.x86_64.rpm
[root@localhost docker-io-1.7.1]# rpm -ivh device-mapper-libs-1.02.117-12.el6_9.1.x86_64.rpm
[root@localhost docker-io-1.7.1]# rpm -ivh docker-io-1.7.1-2.el6.x86_64.rpm
warning: docker-io-1.7.1-2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing... ########################################### [100%]
1:docker-io ########################################### [100%]
[root@localhost docker-io-1.7.1]#
5. 启动docker
[root@localhost docker-io-1.7.1]# docker -v
Docker version 1.7.1, build 786b29d/1.7.1
[root@localhost docker-io-1.7.1]# service docker start
Starting cgconfig service: [确定]
Starting docker: [确定]
[root@localhost docker-io-1.7.1]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost docker-io-1.7.1]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost docker-io-1.7.1]#
docker的使用,后续会另起博客。
CentOS 7 安装Docker
1. 确定系统版本信息
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
2. 检查是否存在旧版本
[root@localhost ~]# rpm -qa | grep docker
[root@localhost ~]#
3. 查看yum源中是否有docker-ce
[root@localhost ~]# yum list | grep docker-ce
[root@localhost ~]#
可以看到,CentOS中没有docker-ce,按照docker官网指示操作即可
4. 安装所需的软件包
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
5. 设置稳定的存储库
[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果安装时网速很慢,可以换阿里云的源
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
再查看yum源中,就有docker-ce了,最新版本是19.03.3
[root@localhost ~]# yum list | grep docker-ce
containerd.io.x86_64 1.2.10-3.2.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stable
docker-ce-cli.x86_64 1:19.03.3-3.el7 docker-ce-stable
docker-ce-selinux.noarch 17.03.3.ce-1.el7 docker-ce-stable
[root@localhost ~]#
6. 安装docker-ce
- 直接安装最新的docker-ce.
如果这是您是第一次从最近添加的存储库中安装软件包,则会提示您接受GPG密钥,并显示密钥的指纹。验证指纹是否正确,如果正确,请接受密钥。指纹应该匹配**** **** **** **** **** **** **** **** ****
。
[root@localhost ~]# yum install docker-ce
[root@localhost ~]# systemctl start docker
- 安装指定版本的docker-ce.
尤其是生产环境,稳定性高于一切,不建议直接安装最新版本。可以通过以下方式安装指定版本。
查看版本列表
列表的内容取决于启用了哪些存储库,并且将特定于您的CentOS .el7版本(在此示例中,由该版本的后缀表示)。选择要安装的特定版本。第二列是版本字符串。您可以使用整个版本字符串,但至少需要在第一个连字符中包含该字符串。第三列是存储库名称,它指示软件包来自哪个存储库,并扩展其稳定性级别。要安装特定版本,请在软件包名称后附加版本字符串,并用连字符(-)分隔。
[root@localhost ~]# yum list docker-ce --showduplicates | sort -r
* updates: mirrors.163.com
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror, langpacks
* extras: mirrors.163.com
docker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.0-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.9-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.8-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.7-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.4-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
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
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.3.ce-1.el7 docker-ce-stable
docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
* base: mirrors.163.com
Available Packages
[root@localhost ~]#
注意:版本字符串是程序包名称加上直到第一个连字符的版本。在上面的示例中,标准包名称为docker-ce-17.06.1.ce。
指定版本安装docker-ce
18.06.3.ce之后的版本字符串格式变了,以下是安装命令区别
[root@localhost ~]# yum install docker-ce-18.03.1.ce
[root@localhost ~]# yum install docker-ce-19.03.3
7. 验证docker-ce是否安装成功
[root@localhost ~]# docker -v
Docker version 19.03.3, build a872fc2f86
[root@localhost ~]# rpm -qa | grep docker
docker-ce-cli-19.03.3-3.el7.x86_64
docker-ce-19.03.3-3.el7.x86_64
[root@localhost ~]#
- 启动docker,通过
docker run hello-world
进行终极验证
[root@localhost /]# systemctl start docker
[root@localhost /]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
afd4a0f174c4 hello-world "/hello" 28 seconds ago Exited (0) 26 seconds ago beautiful_ellis
[root@localhost /]#
已成功安装。
8. 卸载docker-ce
[root@localhost /]# yum remove docker docker-common docker-selinux docker-engine
[root@localhost /]# rpm -qa | grep docker
docker-ce-cli-19.03.3-3.el7.x86_64
[root@localhost /]# docker -v
Docker version 19.03.3, build a872fc2f86
[root@localhost /]# rpm -e docker-ce-cli-19.03.3-3.el7.x86_64
[root@localhost /]# docker -v
bash: /usr/bin/docker: No such file or directory
[root@localhost /]# rpm -qa | grep docker
[root@localhost /]#
以下几个rpm包都要卸载
packages:
(1/4): container-selinux-2.107-3.el7.noarch.rpm
(2/4): containerd.io-1.2.10-3.2.el7.x86_64.rpm
(3/4): docker-ce-19.03.3-3.el7.x86_64.rpm
(4/4): docker-ce-cli-19.03.3-3.el7.x86_64.rpm
感谢阅读,有兴趣的小伙伴可以关注我的公众号DevOps探索之旅
,大家一起学习进步