一、启动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