一、啓動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