第二节 安装Docker环境
Docker值得关注的特性:
- 文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
- 资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。
- 网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。
- 日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索
- 变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建多的容器,无需使用模板或手动配置。
- 交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上。
2017年2月份,Docker公司发布了全新的Docker版本:V1.13.0。从2017年3月1日开始,Docker的版本命名发生如下变化。
Docker现在有两种版本L社区版CE(Community Edition)和企业版EE(Enterprise Edition)
DockerCE有2中更新:stable和edge
stable版本每个季度更新一次
edge版本每个月更新一次
DockerEE版本是收费的,面向企业。
Capabllities |
Cmmunity Edition |
Enterprise Edition Basic |
Enterprise Edition Standard |
Enterprise Edition Advanced |
Container engine and build in orchestration,networking,sercurity |
✔️ |
✔️ |
✔️ |
✔️ |
Certified infrastructure,plugins and ISV containers |
✔️ |
✔️ |
✔️ |
|
Image management |
✔️ |
✔️ |
||
Container app management |
✔️ |
✔️ |
||
Image security scanning |
✔️ |
Docker CE和EE都支持多种平台,包括云主机,可以按照下面的来选择合适的版本。
Desktop
Platform |
Docker CE X86_64 |
Docker CE ARM |
Docker EE |
Docker for Mac (macos) |
✔️ |
||
Docker for Windows(Microsoft Windows 10) |
✔️ |
Cloud
Platform |
Docker CE X86_64 |
Docker CE ARM |
Docker EE |
Docker for Mac (macos) |
✔️ |
✔️ |
|
Docker for Windows(Microsoft Windows 10) |
✔️ |
✔️ |
Server
Platform |
Docker CE X86_64 |
Docker CE ARM |
Docker CE IBM(s390x) |
Docker EE x86_64 |
Docker EE IBM Z(s390x) |
CentOS |
✔️ |
✔️ |
|||
Debian |
✔️ |
✔️ |
|||
Fedora |
✔️ |
||||
Microsoft Windows Server 2016 |
✔️ |
||||
Oracle Linux |
✔️ |
||||
Red Hat Enterprise Linux |
✔️ |
✔️ |
|||
SUSE Linux Enterprise Server |
✔️ |
✔️ |
|||
Ubuntu |
✔️ |
✔️ |
✔️ |
✔️ |
✔️ |
一、安装Docker CE:
依据你的需求,安装有不同的方法:
1、大多数用户设置Docker库然后安装,对安装和升级任务轻松,这是推荐的方法。
2、有些用户下载RPM包并手动安装,并完全手动管理升级,没有互联网连接下的好方法。
3、在测试和开发环境,一些用户选择使用自动化脚本安装Docker。
OS要求:
1、需要一个维护版本的CentOS7,Archived Versions或者test版本不被支持
2、Centos-extras仓库需要**,默认在centos7上是**的。
3、overlay2存储驱动是被推荐使用。
卸载旧版本:
Docker的旧版本被称为docker-engine。如果这些以安装,请卸载他们以及关联的依赖关系。
[[email protected] ~]# yum remove docker \
> docker-client \
> docker-common \
> docker-latest \
> docker-latest-logrotate \
> docker-logrotate \
> docker-selinux \
> docker-engine-selinux \
> docker-engine
/var/lib/docker/的内容,包括镜像,容器,卷和网络都被保留。Docker CE包现在称为docker-ce,Docker EE包现在成为docker-ee。
二、使用Docker yum仓库安装。
第一次在新主机上安装Docker CE,需要先设置Docker yum仓库,然后你可以从yum仓库安装和更新Docker。
1、安装需求包。
安装所需的软件包yum-utils提供了yum-config-manager实用程序,device-mapper-persistent-data和lvm2是devicemapper(设备映射)存储驱动程序所需必须的。
[[email protected] ~]# yum install -y yum-utils \
> device-mapper-persistent-data \
> lvm2
2、安装stable标准库:
官方源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
国内源:
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo //我们选择国内源
3、选项:
docker-ce.repo文件默认也包含edge和test仓库,默认是关闭的,你可以**和关闭它们。
[[email protected] ~]# yum-config-manager --enable docker-ce-edge 开启edge版仓库
[[email protected] ~]# yum-config-manager --enable docker-ce-test 开启test版仓库
[[email protected] ~]# yum-config-manager --disable docker-ce-edge 关闭edge版仓库
注解:edge仓库和test仓库分别是Docker不同版本的仓库。
三、安装docker-ce:
1、安装最新版本:
[[email protected] ~]# yum -y install docker-ce
这个命令会安装最新版本,安装完后,并不会启动docker,会创建docker组,但是组中没有任何用户。
2、可以使用以下命令列出可用版本,选择安装不同版本。
[[email protected] ~]# yum list docker-ce --showduplicates | sort -r
3、启动docker。
[[email protected] ~]# systemctl start docker
4、测试,检查docker是否正确安装并运行hello-world镜像。
[[email protected] ~]# docker run hello-world
建立docker用户组:
默认情况下,docker命令会使用Unix socket与Docker引擎通讯。而只有root用户和docker组的用户才可以访问docker引擎的Unix socket。处于安全考虑,一般Linux系统上不会直接使用root用户。因此,更好的做法是将需要使用docker的用户加入docker用户组。
建立docker组:
[[email protected] ~]# groupadd docker
将当前用户加入docker组:
[[email protected] ~]# usermod -aG docker $USER
镜像加速:
鉴于国内网络问题,后续拉取Docker镜像十分缓慢,强烈建议安装Docker之后配置国内镜像加速。
例如:
阿里云加速器
DaoCloud加速器:curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io //DaoCloud加速器
灵雀云加速器
1、注册一个阿里的账号
2、进入加速器页面https://cr.console.aliyun.com/#/accelerator
3、复制你的加速器URL:https://g56tfe5n.mirror.aliyuncs.com(本人的)
对于使用systemd的系统,用systemctl enable docker启用服务后,编辑/etc/systemd/system/multi-target.wants/docker.service文件,找到ExecStart=这一行,在这行最后添加加速器地址 --registry-mirror<加速器地址>,如:
ExecStart=/usr/bin/dockerd --registry-mirror=https://g56tfe5n.mirror.aliyuncs.com
注:对于1.12以前版本的,dockerd换成docker daemon。
重新加载配置并且重新启动。
[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl restart docker
4、验证是否生效:
执行以下命令:
[[email protected] ~]# ps -aux | grep docker
如果从结果中看到了配置的--registry-mirror参数说明配置成功了。
也可以使用rpm包进行安装,需要到
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/下载软件包,然后使用命令安装即可。
卸载docker-ce:
1、卸载docker软件包
[[email protected] ~]# yum remove docker-ce
2、镜像、容器、卷和自定义的配置文件不会自动删除。
[[email protected] ~]# rm -rf /var/lib/docker //必须手动删除任意的配置文件
docker默认使用的是Unix socket
[[email protected] ~]# ss -ax | grep docker
查看docker版本
[[email protected] ~]# docker version
安装好的docker系统有两个程序:docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有容器。docker客户端扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程,大部分情况下docker服务端和客户端运行在一台机器上。
附:直接输入docker命令来查看所有Options和Commands,查看某一个command的详细使用方法:docker COMMAND --help