这个《Docker入门系列》文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成。主要是作为个人学习记录。有错误的地方,Robin欢迎大家指正。分为如下几个部分:
1 Docker入门:简介
2 Docker入门:安装/卸载
3 Docker入门:容器(Containers)
4 Docker入门:服务(Services)
5 Docker入门:Swarms
6 Docker入门:Stacks
7 Docker入门:部署app
8 Docker入门:稍高级的话题
2.1 版本及平台简介
Docker有两个主要版本:CE(Community Edition)和EE(Enterprise Edition)。
Docker CE是开发者和小团队的理想选择,可以通过它了解Docker,并体验基于容器的应用程序。本文使用Docker CE。
Docker可以支持许多平台。比如,
(1)桌面系统:MAC/WINDOWS;
(2)云平台:AWS/Azure;
(2)服务器:CentOS/Debian/Fedora/Windows server2016/Red Hat Enterprise Linux等。
本文在CentOS上安装。
2.2 删除老版本
旧的Docker版本被称为docker或docker-engine。如果存在旧版本,就卸载它们及其关联的依赖。
使用如下命令卸载老版本:
$ sudo yum remove docker docker-common docker-selinux docker-engine
卸载后,/var/lib/docker/的内容依然保留,包括映像,容器,卷,和网络配置。
新的Docker包名字为docker-ce。
2.3 安装的三种方式
根据需要,可选择三种方式安装Docker。
- 很多用户配置Docker仓库,并从仓库中安装Docker,从而简化安装和升级工作。这是推荐方式。本文采用这种方式。
- 有的用户下载RPM包并手动安装,升级也是手动进行。这种方式适合在无法连接互联网时安装Docker。
- 在开发/测试环境中,有的用户选择使用自动化脚本来安装Docker。
2.4 安装Docker
采用上述第一种方式(install using the repository)进行安装。采用如下几节步骤。
2.4.1 配置仓库
分为如下步骤:
(1)安装需要的包。yum-utils提供yum-config-manager管理工具;devicemapper存储驱动需要device-mapper-persistent-data和lvm2。
[root@localhost /]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Loaded plugins: fastestmirror, langpacks
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
updates/7/x86_64/primary_db | 2.7 MB 00:00:18
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.tuna.tsinghua.edu.cn
Package yum-utils-1.1.31-42.el7.noarch already installed and latest version
Package device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64 already installed and latest version
Package 7:lvm2-2.02.171-8.el7.x86_64 already installed and latest version
Nothing to do
(2)使用如下命令安装stable仓库:
[root@localhost /]# sudo yum-config-manager \
--add-repo https://download.docker.com/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
(3)使能/不使能edge仓库和test仓库。本步骤为可选的,略。
2.4.2 安装Docker CE
如果安装Docker CD的最新版本,采用如下命令:
$ sudo yum install docker-ce
警告:如果你使能了多个Docker仓库,使用命令yum install或yum update进行安装或升级时,将会安装最高(新)的版本,这可能不满足你的版本需求。
如果你是第一次通过最新添加的仓库来安装,将会提示接受GPG key,并且该key的fingerprint将会显示出来,只有接受该key,才能继续安装,这个fingerprint要和下面的值匹配:
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35.
如果要安装Docker CE的特定版本。首先列出可用的版本,并使用命令sort –r进行排序:
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 17.09.ce-1.el7.centos docker-ce-stable
列出的内容取决于使能了哪些仓库,并和CentOS的特定版本(由.e17标识)有关。然后选择一个版本安装。第二列是版本号,你可以使用整个字符串,但至少使用到第一个连接符。第三列是仓库名称,用于标识来自于哪个仓库。本示例中的全限定名称为:docker-ce-17.09.ce。安装命令如下:
$ sudo yum install <FULLY-QUALIFIED-PACKAGE-NAME>
2.4.3 启动Docker
使用如下命令启动:
$ sudo systemctl start docker
2.4.4 测试验证
通过运行hello-world映像来验证Docker是否正确安装:
[root@localhost /]# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
5b0f327be733: Pull complete
Digest: sha256:07d5f7800dfe37b8c2196c7b1c524c33808ce2e0f74e7aa00e603295ca9a0972
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
这个命令会下载一个测试映像,并在一个容器中运行。当容器运行时,将会打印一条信息然后结束。
Docker CE安装运行后,可以使用sudo来运行Docker命令。
2.4.5 查看Docker版本号
[root@localhost /]# docker --version
Docker version 17.09.0-ce, build afdb6d4
2.5 升级Docker CE
采用如上安装步骤来升级Docker CE。
2.6 卸载Docker CE
使用如下命令卸载Docker包:
$ sudo yum remove docker-ce
上面命令只是卸载Docker包,而映像(images)、容器(containers)、卷(volumes)、用户配置的文件并不会从你的主机上自动删除,使用如下命令删除这些东西:
$ sudo rm -rf /var/lib/docker
必须手动删除已编辑的配置文件。