安装说明
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10
安装docker
删除旧版 docker
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装新版 docker
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
防火墙
$ sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
$ sudo firewall-cmd --reload
开启docker
$ sudo systemctl start docker
设置开机自启动
$ sudo systemctl enable docker
建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
建立 docker 组:
$ sudo groupadd docker
复制代码将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
测试 Docker 是否安装正确
$ docker run hello-world
镜像加速
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 国内镜像加速。
修改配置文件 /etc/docker/daemon.json
,添加主机 DNS
服务器后重启 Docker
守护进程(如果文件不存在请新建该文件)
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
重新启动服务
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
发现问题
测试是否是DNS解析出错,测试命令如下:
$ docker run busybox nslookup baidu.com
nslookup: write to '127.0.1.1': Connection refused
;; connection timed out; no servers could be reached
没有设置 DNS
如果启用 防火墙
DNS
修改配置文件 /etc/docker/daemon.json
,添加主机 DNS
服务器后重启 Docker
守护进程(如果文件不存在请新建该文件)
{
"dns": ["8.8.8.8", "1.1.1.1"]
}