Featured image of post Centos 安装 docker

Centos 安装 docker

安装说明

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10

DOCKER官网


安装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"
  ]
}

daemon.json 说明


重新启动服务

$ 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"]
}

感谢及参考

Licensed under CC BY-NC-SA 4.0
最后更新于 2021 年 11 月 5 日 23:09 +0900