inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Jenkins를 이용한 CI/CD Pipeline 구축

WSL+ubuntu) ssh서버 내 도커실행 문제해결법 공유

2276

lettgo

작성한 질문수 1

0

운영체제 : window에서 WSL통한 ubuntu설치하여 사용중

문제상황: ssh 접속후 systemctl으로 docker start 시에 에러발생하며 빠져나옴.

에러코드:

failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables --wait -t nat -N DOCKER: iptables v1.8.4 (nf_tables): CHAIN_ADD failed (No such file or directory): chain PREROUTING

(exit status 4)

처음에는 wsl의 낮은 커널버전이 문제인가했는데 이 방법으로는 해결못했고,

더 찾아보니 centos8 에서는 iptables가 아닌 firewalld, nfttable(방화벽기능)에서 port관리를 하며, docker version이 20.10.5 이상부터는 firewalld가 실행, 미실행 상관없이 도커실행에 문제가 생길 수 있다는 블라블라~의 글이 있었습니다.(팩트인지는모름)

그래서 시도차원에서 centos8가 아니라 centos7 이미지를 기반으로하는 dockerfile을 만들었고,

이미지를 생성 후

 

이렇게해서 추후실습에 어떤영향이 있을지는 모르겠지만, 일단 저는 이렇게하고 진행해보려합니다.

문제가생기면 그때해결..!

 

Dockerfile 내용

FROM centos:7
#FROM centos:8

RUN yum -y update; yum clean all
RUN yum -y install systemd; yum clean all;
# (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
# rm -f /lib/systemd/system/multi-user.target.wants/*;\
# rm -f /etc/systemd/system/*.wants/*;\
# rm -f /lib/systemd/system/local-fs.target.wants/*; \
# rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
# rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
# rm -f /lib/systemd/system/basic.target.wants/*;\
# rm -f /lib/systemd/system/anaconda.target.wants/*;

VOLUME ["/sys/fs/cgroup"]

# RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Base.repo
# RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Base.repo
RUN yum update

# install sshd
RUN yum install -y epel-release
RUN yum install -y openssh-server \
&& sed 's/#PermitRootLogin yes/PermitRootLogin yes/' -i /etc/ssh/sshd_config \
&& echo 'root:P@ssw0rd' | chpasswd \
&& ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
RUN yum install -y openssh-clients

RUN yum update -y
RUN yum install -y iptables
# RUN yum install -y docker docker-registry
# RUN yum install -y docker
# RUN yum install -y docker-ce-cli 
# RUN yum install -y containerd.io
# RUN sed -i -e 's/overlay2/vfs/g' /etc/sysconfig/docker-storage

RUN yum install -y yum-utils
RUN yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
RUN yum install -y docker-ce docker-ce-cli containerd.io
# RUN systemctl start docker
RUN yum install -y ncurses
RUN yum install -y git

WORKDIR /root
COPY ./Dockerfile ./Dockerfile

EXPOSE 22

ENTRYPOINT ["/sbin/init", "systemctl", "start", "sshd"]

ansible jenkins kubernetes sonarqube cicd

답변 1

0

Dowon Lee

안녕하세요, 이도원입니다.

원래, Windows에서 사용될 Dockerfile들은 CentOS 7을 Base로 생성되었었는데, MacOS M1 버전과 호환되게 만들려고 하다보니, CentOS8로 변경되어 생성되었습니다. CentOS에 따른 이미지 생성은 수업이 상관없으며, 필요한 패키지나 서비스가 있을 경우 yum 명령어로 실해하시어 처리해 주시면 됩니다.

감사합니다.

내장형 톰캣일경우

0

27

2

git 에 강의내용에 필요한 파일들 존재하지 않음

0

93

2

젠킨스에 등록된..

0

102

2

yml 파일 db 접속정보 수정 후 배포 시 미반영

0

116

2

jdk 버전 17

0

85

2

섹션2 강의자료

0

108

2

DOCKER 이미지 PULL

0

268

1

36강 edowon0623/cicd-project-ansible이 호환이 안되는것 같아요

0

65

1

질문이 있습니다!!

0

72

1

exec /usr/local/tomcat/bin/catalina.sh: invalid argument 오류 해별법(공유)

1

208

4

m2 mac: ansible-server에서 container 실행 안됨

0

162

2

Jenkins와 k8s 연동과 관련한 질문입니다.

0

99

2

Ansible 과 연동에서 이미지 및 컨테이너 생성과 관련한 질문 드립니다.

0

177

2

맥북 실리콘칩 invalid argument 에러 해결 (수동 설치)

0

261

3

Docker Container에서 Tomcat 설치

0

225

2

ec2 여러대에서 각각 직접 설치 이유

0

155

1

P@ssw0rd 설정시기

0

152

2

ansible 원리

0

136

2

ansible 존재여부

0

120

2

젠킨스 빌드 성공후 shutdown

0

253

2

Docker Hub에 Push 무한 로딩

0

131

2

컨테이너에 ssh로 접속 비밀번호 불일치

0

122

1

maven project 오류

0

120

2

엔서블을 이용하여 톰캣 이미지 배포 후, 되돌리는 방법

0

151

2