1. 程式人生 > >Centos7官方docker映象在容器中啟動docker服務失敗

Centos7官方docker映象在容器中啟動docker服務失敗

Centos7官方docker映象在容器中啟動docker服務失敗
官方映象下載地址:https://hub.docker.com/_/centos
命令: docker pull centos
1、根據需求安裝所需工具,生成自己的映象,Dockerfile如下:
FROM centos:7
RUN yum -y install openssh-clients;yum -y install openssh-server;yum -y install vim;yum -y install docker;yum -y install git;yum -y install sshpass;yum -y install sudo;yum -y install java-1.8.0-openjdk*; yum clean all; systemctl enable sshd.service;
COPY config /etc/selinux/config
CMD ["/usr/sbin/init"]
在這裡插入圖片描述


Config檔案是selinux的config,修改其中的內容為:
在這裡插入圖片描述

2、在k8s中執行,啟動docker報錯如下:
在這裡插入圖片描述
解決辦法:1、關閉docker中的selinux
vim /etc/sysconfig/docker
在這裡插入圖片描述
2、配置docker網橋
yum install bridge-utils
yum install iproute
brctl addbr docker0
ip addr add 172.17.0.1/16 dev docker0
ip link set dev docker0
3、修改配置檔案
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry=10.19.248.12:30100 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
在這裡插入圖片描述


4、啟動服務
systemctl daemon-reload
systemctl restart docker

解決思路:使用systemctl status docker檢視報錯資訊,根據提示第一步缺少docker的使用者組,新增後重啟繼續報錯,看下一步報錯資訊docker啟動引擎不支援檔案系統,這個錯誤網上查了很久最後通過上文第3步解決,重啟後繼續報錯,提示network方面的,上文第二步解決,後續報錯提示識別不了/etc/docker/daemon.json檔案,是應為我們–insecure-registry配置重複,清空daemon.json,最終docker服務啟動,這個過程中還遇到了一些其他問題解決後一步步試錯,最後總結通過以上三步就可解決服務報錯問題。