centos7啓動docker服務異常解決

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章