Docker 服务无法在 CentOS 7 上启动

修图

我使用以下命令在 CentOS Linux 版本 7.6.1810 (Core) 上安装 Docker CE

yum check-update
curl -fsSL https://get.docker.com/ | sh

systemctl start docker 显示

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

journalctl -u docker.service 显示以下日志

Nov 02 11:19:10 server systemd[1]: Starting Docker Application Container Engine...
Nov 02 11:19:10 server dockerd[1059]: time="2019-11-02T11:19:10.878296526Z" level=info msg="Starting up"
Nov 02 11:19:10 server dockerd[1059]: time="2019-11-02T11:19:10.930469940Z" level=info msg="parsed scheme: \"unix\"" module=grpc
Nov 02 11:19:10 server dockerd[1059]: time="2019-11-02T11:19:10.930539797Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Nov 02 11:19:10 server dockerd[1059]: time="2019-11-02T11:19:10.930596542Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0  <nil>}] <nil>}" module=grpc
Nov 02 11:19:10 server dockerd[1059]: time="2019-11-02T11:19:10.930621923Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Nov 02 11:19:10 server dockerd[1059]: time="2019-11-02T11:19:10.981128356Z" level=info msg="parsed scheme: \"unix\"" module=grpc
Nov 02 11:19:10 server dockerd[1059]: time="2019-11-02T11:19:10.981167718Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Nov 02 11:19:10 server dockerd[1059]: time="2019-11-02T11:19:10.981190341Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0  <nil>}] <nil>}" module=grpc
Nov 02 11:19:10 server dockerd[1059]: time="2019-11-02T11:19:10.981202686Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Nov 02 11:19:11 server dockerd[1059]: time="2019-11-02T11:19:11.074191900Z" level=info msg="[graphdriver] using prior storage driver: overlay2"
Nov 02 11:19:11 server dockerd[1059]: time="2019-11-02T11:19:11.157844953Z" level=info msg="Loading containers: start."
Nov 02 11:19:12 server dockerd[1059]: time="2019-11-02T11:19:12.159329593Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred
Nov 02 11:19:12 server dockerd[1059]: time="2019-11-02T11:19:12.297096462Z" level=info msg="Loading containers: done."
Nov 02 11:19:12 server dockerd[1059]: time="2019-11-02T11:19:12.646584626Z" level=info msg="Docker daemon" commit=9013bf583a graphdriver(s)=overlay2 version=19.03.4
Nov 02 11:19:12 server dockerd[1059]: time="2019-11-02T11:19:12.646760510Z" level=info msg="Daemon has completed initialization"
Nov 02 11:19:12 server dockerd[1059]: time="2019-11-02T11:19:12.848425893Z" level=info msg="API listen on /var/run/docker.sock"
Nov 02 11:19:12 server configure-snat[1517]: mount: /dev/sr0 is write-protected, mounting read-only
Nov 02 11:19:13 server configure-snat[1517]: + iptables -t nat -D POSTROUTING -s 172.17.0.1/16 '!' -o docker0 -j SNAT --to
Nov 02 11:19:13 server configure-snat[1517]: iptables v1.4.21: option "--to" requires an argument
Nov 02 11:19:13 server configure-snat[1517]: Try `iptables -h' or 'iptables --help' for more information.
Nov 02 11:19:13 server configure-snat[1517]: + iptables -t nat -I POSTROUTING -s 172.17.0.1/16 '!' -o docker0 -j SNAT --to
Nov 02 11:19:13 server configure-snat[1517]: iptables v1.4.21: option "--to" requires an argument
Nov 02 11:19:13 server configure-snat[1517]: Try `iptables -h' or 'iptables --help' for more information.
Nov 02 11:19:13 server systemd[1]: docker.service: control process exited, code=exited status=2
Nov 02 11:19:13 server dockerd[1059]: time="2019-11-02T11:19:13.296514020Z" level=info msg="Processing signal 'terminated'"
Nov 02 11:19:13 server dockerd[1059]: time="2019-11-02T11:19:13.297279527Z" level=info msg="Daemon shutdown complete"
Nov 02 11:19:13 server systemd[1]: Failed to start Docker Application Container Engine.
Nov 02 11:19:13 server systemd[1]: Unit docker.service entered failed state.
Nov 02 11:19:13 server systemd[1]: docker.service failed.
Nov 02 11:19:15 server systemd[1]: docker.service holdoff time over, scheduling restart.
Nov 02 11:19:15 server systemd[1]: Stopped Docker Application Container Engine.

在 Docker 论坛提出了一个类似的问题,但目前还没有答案。

修图

我发现configure-snat实际上是 VPS 提供商注入的脚本。该文件位于/opt/godaddy/docker/configure-snat. 在脚本中,它试图将公共 IP 注入 iptables。但是,它无法找到公共 IP,因此在 iptables 命令中,--to没有附加参数。

解决方法是在脚本中对公共 IP 进行硬编码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章