Docker Engine 安装部署

1 背景知识

本章主要介绍在 Linux 操作系统平台上进行安装和配置 Docker Engine

2 环境准备

Warning

以下操作均需要操作系统链接互联网,请提前配置完成。

  1. 操作系统支持。

CentOS. Debian. Fedora. Raspbian. RHEL. SLES. Ubuntu. Binaries

  1. 启用centos-extras  软件仓库源。
Note

Centos 默认已经开启centos-extras 源。

  1. 移除Docker旧版本。
#root>
 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  1. 关闭 firewalld 防火墙,安装 iptables 防火墙。
#root>
# 关闭防火墙
systemctl stop firewalld
# 取消开机启动
systemctl disable firewalld
#安装iptables
yum install iptables-services -y
# 重启防火墙使配置生效
systemctl start iptables
# 设置防火墙开机启动
systemctl enable iptables
Warning
  1. 创建默认存储目录
#root>
mkdir /data

3 安装Docker Engine

Warning

本章节介绍【联网方式 】、【离线方式】和【二进制安装】安装方式。

  1. Docker Engine 联网安装:使用 YUM 软件仓库联网安装。
  2. Docker Engine RPM安装:下载 RPM 包并手动安装,并且手动管理升级。这对于有些无法访问互联网的机器特别有用。
  3. Docker Engine 二进制安装: 下载二进制安装包,并手动管理维护。
  4. 自动化脚本:在测试和开发环境中,用户使用自动化脚本安装 Docker。

4 配置 Docker Engine 服务

本节主要介绍Docker Engine 服务配置,让Docker更加好用和安全。

4.1 Docker Engine创建管理用户

以上方式安装后,不会自动创建管理Docker服务的普通用户。每次操作Docker都需要root用户,这样非常不方便。针对这个问题,可以创建新的普通用户,并且加入到docker用户组。

  1. 创建Docker Engine专用管理用户,并加入docker用户组。
 sudo useradd docker -g docker

4.2 Docker Engine启动与停止

  1. Docker Engine 服务开启启动
systemctl enable docker
  1. systemctl 启停Docker Engine服务。
sudo systemctl start docker.service
sudo systemctl status docker.service
sudo systemctl stop docker.service
  1. service 启停Docker Engine服务。
root# sudo service docker start
root# sudo service docker status
root# sudo service docker stop

4.3 Docker Engine更改默认存储目录

  1. Docker 默认的存储目录是存放在/var/lib/docker,这个目录一般挂载在根(/) 目录下。

  2. 这个目录存储大量的镜像和容器,非常容易撑满磁盘,所以需要更换默认的存储目录。

  3. 配置默认存储目录。

root# vim /etc/docker/daemon.json

---------------写入以下内容--------------

{

…snip…

  "data-root": "/data"

…snip…

}
  1. 关闭Docker 服务。
sudo systemctl stop docker

  1. 迁移Docker 容器和镜像数据。
sudo  mv /var/lib/docker/* /data/
  1. 重启Docker服务。
sudo systemctl start docker
  1. 检查是否能够成功拉取镜像。
sudo docker pull hello-world
Warning

也可以使用软连接方式进行数据迁移。

4.4 Docker 命令行自动补全

最小化安装的 Linux 对于输入 docker 命令时无法自动补全。造成使用效率大大降低。这里推荐安装bash-completion 组件。

  1. 安装 bash-completion
yum install -y bash-completion
  1. 生效环境变量。
source /usr/share/bash-completion/completions/docker
source /usr/share/bash-completion/bash_completion