很高兴能和大家一起学习怎么使用Docker,这个文集的内容翻译自官网Get Started教程,由于英文直译可能读起来会有些吃力,所有这里是根据我个人的理解进行的翻译,如有不正确的地方,欢迎指正。
以下是这个文集的主要内容:
在这一章节是简介,你将了解docker,知道如何安装配置Docker
第二章,Container--容器,包含你的App在内的所有运行环境
第三章,Service--服务,将容器实例转变成服务,可以运行多个服务,并实现负载均衡
第四章,Swarm--集群,将服务运行在多个机器上,实现集群
第五章,Stack--栈,实现多个服务之间的依赖配置,启动顺序以及批量服务的管理
概念介绍
镜像(Image):镜像是一种轻量型的,独立的,可执行的文件,包含你的App运行时所有需要的一切,包括App的代码,运行时环境,库,环境变量以及配置文件等等。
容器(Container):镜像的一个运行时实例--即将镜像文件加载到内存并真正执行,默认情况下是不受宿主机器环境影响,只有在你有额外配置的时候才会访问宿主机器的文件和端口。
容器是运行在操作系统内核之上的,和通过宿主操作系统管理程序,获取宿主机器资源的虚拟访问权限的虚拟机相比,拥有更好的性能。容器有本地访问权限,不同的容器是独立运行的,并且在执行本地操作时,并不会比直接操作消耗更多的内存。
容器与虚拟机对比
大家从以下图片就能看出来,每个虚拟机都是运行在一个单独访客(Guest)操作系统之上的,由于每一个虚拟机都包含一个操作系统,所以虚拟机会消耗更多的资源。磁盘映像,App状态与操作系统配置严重耦合在一起。对操作系统的依赖和操作系统权限配置导致很难移植到其他机器之上。
虚拟机
Docker容器
对Docker而言,多个容器共享同一个内核。容器镜像里只需要可执行的文件以及他们的依赖,并且这些都不需要安装在宿主机器的操作系统上。这些实例就像本地程序一样运行,而且你可以通过命令单独管理,比如docker ps --就如同你再Linux系统上执行ps命令查看进程一样简单。最后,由于容器包含了你所需要的一切依赖,不会和你的宿主机器配置有任何的纠缠,所以可以说,一个容器化的App,可以很方便移植(Rus Anywhere)。
安装
在CentOS上安装docker-ce(最新版)
添加Docker CE repository on CentOS:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
缓存库的搜索列表到本地:
yum makecache fast
安装docker-ce
yum -y install docker-ce
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
...(删减)...
查看版本是否在1.13以上:
$ docker --version
Docker version 17.05.0-ce-rc1, build 2878a85
启动docker:
systemctl start docker
安装国内镜像源:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ef732055.m.daocloud.ioCopy
docker国内镜像仓库(linux, macOS, windows):
https://www.daocloud.io/mirror#accelerator-doc
该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/default/docker 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。