今天讓將服務(wù)器做了 raid 磁盤整列中一塊壞了的硬盤給換了下來,因?yàn)椴恢С譄岵灏危跃椭貑⒘讼路?wù)器,結(jié)果:docker 安裝 jenkins 是邊出問題了。報(bào)錯(cuò)信息如下:
[root@qijing0 jenkins]# docker run -d -v jenkins_home:/home/data/jenkins -p 8080:8080 -p 50000:50000 -v --restart=on-failure jenkins/jenkins:lts-jdk11
9680f33ac025f908eb6fd46018605c8863eccb66015bb3245327ea2a1dacf112
docker: Error response from daemon: driver failed programming external connectivity on endpoint frosty_bell (e1c3e0f5f896351def879cbb29f725d4d598380c97c95d893fda970b32044833): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 50000 -j DNAT --to-destination 172.17.0.3:50000 ! -i docker0: iptables: No chain/target/match by that name.

報(bào)錯(cuò)
這個(gè)報(bào)錯(cuò)其實(shí)是因?yàn)椋谖覀儐?dòng)了 docker 后,對(duì)防火墻進(jìn)行了操作導(dǎo)致的(我執(zhí)行的操作是:systemctl stop firewalld)。
上面是表面原因,實(shí)質(zhì)上是因?yàn)椋?strong>docker 服務(wù)啟動(dòng)時(shí)定義的自定義連 DOCKER,當(dāng) centos7 firewalld 被清掉時(shí),firewalld 啟動(dòng)或者重啟額時(shí)候,將會(huì)從 iptables 中溢出 DOCKER 的規(guī)則,從而影響了 docker 的正常工作。當(dāng)我們使用的是 systemd 配置docker 的時(shí)候,firewalld 會(huì)在 docker 之前啟動(dòng),但是如果你在 docker 啟動(dòng)之后操作 firewalld,你就需要重啟 docker 進(jìn)程了。
解決辦法:
systemctl restart docker

可以了
重啟docker服務(wù)并重新生成自定義鏈DOCKER。