centos7启动docker服务异常解决

mac2026-04-24  8

一、启动docker服务报错

1. 启动docker服务报错

[root@centos7 ~]# service docker start Starting docker (via systemctl): Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details.

先根据提示查看错误(找准病因再下手,不然一切都是徒劳)

// 查看docker服务状态 systemctl status docker.service // 查看系统日志 journalctl -xn

2. 查看SELinux、防火墙状态:

1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态

SELinux status: enabled

2、getenforce ##也可以用这个命令检查

关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0 ##设置SELinux 成为permissive模式

##setenforce 1 设置SELinux 成为enforcing模式

2、修改配置文件需要重启机器:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

 

虽然关闭了selinux,但是貌似执行docker 还是会出现下面错误:

[root@centos7 init.d]# docker images Get http:///var/run/docker.sock/v1.20/images/json: dial unix /var/run/docker.sock: no such file or directory. * Are you trying to connect to a TLS-enabled daemon without TLS? * Is your docker daemon up and running?

根据提示发现docker daemon没有启动,执行以下命令就正常了

# sudo systemctl daemon-reload # sudo systemctl restart docker

二、docker启动 jenkins 服务报错

jenkins的docker containner启动失败,报错:failed programming external connectivity … iptables: No chain/target/match by that name”

原因如下:

docker 服务启动的时候,docker服务会向iptables注册一个链,以便让docker服务管理的containner所暴露的端口之间进行通信,我们通过命令iptables -L可以查看 iptables 的规则链

在实际操作中,如果你一不小心删除了iptables中的 docker 规则链或者iptables 的docker规则链在启动时并未生效(例如:重启firewalld、开启selinux等等),那么 docker 服务 就会报iptables error例如:failed programming external connectivity … iptables: No chain/target/match by that name

要解决这个问题,只要重启docker服务,之后,正确的iptables规则就会被创建出来

此时只需重启docker服务便能解决 

# systemctl restart docker.service

 

最新回复(0)