环境要求
要在CentOS上使用Docker CE,请确保满足以下先决条件,然后安装Docker。
操作系统要求:
1. 要安装Docker CE,需要CentOS7的维护版本。
2. 必须启用centos-extras repo。默认情况下,此存储库已启用。
建议使用overlay2存储驱动程序。
较旧版本的Docker被称为docker或docker-engine。如果安装了这些版本,请卸载它们以及相关的依赖项:
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安装
Docker支持多种方式安装:
1.大多数用户采用设置Docker YUM仓库的方法进行安装,以便于后期升级。这也是官方推荐的方法
2.有些用户下载RPM软件包,手动安装并完全手动管理升级。这在没有连接互联网的主机安装docker非常有用
3.在测试和开发环境中,一些用户选择使用自动便捷脚本来安装Docker
YUM方式安装
- 安装所需要的包:
yum-utils包:提供 yum-config-manager程序
$ sudo yum -y install yum-utils
- 使用以下命令设置稳定的yum仓库:
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repols
- 安装Docker CE
$ sudo yum -y install docker-ce
网络访问docker官网没问题的话,执行完以上三步,Docker CE就安装完成了。在安装过程中,如果出现类似“Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 12] Timeout on”的错误,请按以下方式进行安装:
1. 使用阿里云的docker镜像仓库
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装Docker CE
$ sudo yum -y install docker-ce
指定安装的版本
使用YUM方式,如何指定docker-ce版本进行安装呢?
1. 列出docker-ce版本:
$ sudo yum list docker-ce --showduplicates | sort -r
- 指定版本:
$ sudo yum install -y docker-ce-<VERSION STRING>
例如安装docker-ce-18.06.1.ce-3.el7版本:
$ sudo yum install -y docker-ce-18.06.1.ce-3.el7
- 启动Docker
$ sudo systemctl enable docker.service
$ sudo systemctl start docker.service
RPM包方式安装docker-ce
对于不能使用yum仓库的情况,可以下载.rpm文件进行安装配置。每次要升级docker时,都需要下载新的rpm文件。
1. 下载地址:
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.1.ce-3.el7.x86_64.rpm
- 安装下载的包
$ sudo yum install /path/to/package.rpmdocker-ce-18.06.1.ce-3.el7.x86_64.rpm
- 启动docker并验证,可以参考上面的步骤
赋予普通用户直接操作docker的权限
使用普通用户操作docker,需要在命令前面加上sudo,总感觉很麻烦,这里讲一下如何使用普通用户直接操作docker。
Docker安装完成后,会创建docker组,但不会向该组添加用户,如果我们想让哪个用户直接操作docker,可以将这个用户加入到docker组中:
1. 添加用户到docker组
$ sudo usermod -aG docker $USER
- 注销并重新登录
- 验证
$ docker ps
配置Docker守护进程监听网络连接
Docker守护程序默认通过监听Unix socket来响应本地客户端的请求。将Docker配置为侦听IP地址和端口以及UNIX套接字,可以允许Docker接受来自远程主机的请求。
在配置Docker以接受来自远程主机的连接之前,了解打开docker到网络的安全隐患至关重要。如果不采取措施来保护连接,则远程非root用户可以在主机上获得root访问权限。有关如何使用TLS证书保护此连接的更多信息,请查看有关如何保护Docker守护程序套接字的文章。
配置Docker以接受远程连接可以使用systemd的Linux发行版的docker.service
systemd单元文件来完成,例如RedHat,CentOS,Ubuntu和SLES的最新版本,或者推荐用于Linux发行版的daemon.json文件。