- 安装Docker环境
# 安装必要软件包
yum install yum-utils device-mapper-persistent-data lvm2
# 添加Docker仓库,注意必须是Docker-CE
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker CE
yum update && yum install docker-ce
- 设置Docker的配置
# 默认安装 /etc/docker 目录不存在,需要创建
mkdir /etc/docker
# 设置Daemon
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
- 重启Docker服务
# Restart Docker
systemctl daemon-reload
systemctl restart docker
- 我遇到了docker启动报错
#systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Tue 2019-07-23 17:17:44 CST; 2h 1min ago
Docs: https://docs.docker.com
Process: 16332 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 16332 (code=exited, status=1/FAILURE)
Jul 23 17:17:42 worker4.huatai.me systemd[1]: docker.service failed.
Jul 23 17:17:44 worker4.huatai.me systemd[1]: docker.service holdoff time over, scheduling restart.
Jul 23 17:17:44 worker4.huatai.me systemd[1]: Stopped Docker Application Container Engine.
Jul 23 17:17:44 worker4.huatai.me systemd[1]: start request repeated too quickly for docker.service
Jul 23 17:17:44 worker4.huatai.me systemd[1]: Failed to start Docker Application Container Engine.
Jul 23 17:17:44 worker4.huatai.me systemd[1]: Unit docker.service entered failed state.
Jul 23 17:17:44 worker4.huatai.me systemd[1]: docker.service failed.
Jul 23 17:18:27 worker4.huatai.me systemd[1]: start request repeated too quickly for docker.service
Jul 23 17:18:27 worker4.huatai.me systemd[1]: Failed to start Docker Application Container Engine.
Jul 23 17:18:27 worker4.huatai.me systemd[1]: docker.service failed.
通过 journalctl -xe
可以看到启动日志是由于初始化 network controller 错误导致
Jul 23 20:16:17 worker4.huatai.me dockerd[16518]: failed to start daemon: Error initializing network controller: list bridge addresses failed: PredefinedLocalScopeDefaultNetworks List: [172.17.0.0/16 172.18.0.0/16 172.19.0.0/16 172.20.0.0/1
Jul 23 20:16:17 worker4.huatai.me dockerd[16518]: time="2019-07-23T20:16:17.337655189+08:00" level=info msg="stopping event stream following graceful shutdown" error="context canceled" module=libcontainerd namespace=plugins.moby
Jul 23 20:16:17 worker4.huatai.me systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jul 23 20:16:17 worker4.huatai.me systemd[1]: Failed to start Docker Application Container Engine.
果然,使用 ip addr
看不到熟悉的 docker0
网桥。
ip link add name docker0 type bridge
ip addr add dev docker0 172.17.0.1/16
然后就可以正常启动docker服务