inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Jenkins를 이용한 CI/CD Pipeline 구축

실습18) Jenkins Slave Node에서 빌드하기

도커 터널링 접속과 ssh 접속

해결된 질문

583

hyun

작성한 질문수 17

1

8분 50초 쯤에서 jenkins master는 ssh를 통해서 접속하는 게 아니라 도커 터널링으로 접속한다고 하셨는데

도커 터널링으로 접속할 때와 ssh로 접속할 때의 구분은 어떻게 하는건가요..? 노드는 ssh로 접속하고 마스터는 ssh로 접속하시는데 이유가 있는걸까요??

ansible jenkins kubernetes ci/cd sonarqube

답변 2

1

Dowon Lee

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

실행 된 Docker에 exec -it 옵션을 이용해서 추가적인 명령을 전달할 수 있는 데, 이때 shell 명령어를 전달함으로써, Terminal에서도 Docker Container 내부로 명령어를 전달할 수 있습니다. 터널링이라고 표현했던 것은 이렇게 Terminal을 통해 명령어를 전달할 수 있는 상태를 말한 것이고, Host PC(윈도우 등)에서 Docker Container에 접속하여 명령어를 실행할 수 있는 상태라고 설명드렸습니다.

SSH는 이렇게 Docker Container에 접속하는 것 뿐만아니라, SSH Server가 설치되어 있는 서버에 SSH Client 도구를 이용하여 접속해서, 명령어를 실행하는 것을 말합니다.

결과적으로 2개는 동일한 작업을 처리할 수 있지만, 기본적인 Docker Container에서 제공되는 명령어로 Docker Container 내부에 들어가서 작업하는 하는 것과 SSH Client로 접속해서 사용하는 것에서 차이가 있습니다.

docker exec -it 컨테이너ID bash 명령어로 Docker Container 내부로 접속하기 위해서는 Container에서 bash 라는 명령어가 실행될 수 있어야 합니다. 그리고 SSH Client로 접속하기 위해서는 SSH Server가 Container 내부에서 실행되고 있어야 합니다. 하나의 PC에서 다른 PC(물리적인 PC 또는 VM)에 접속해서 명령어를 사용할 때는 SSH를 통해 인증을 거친 사용자에게만 작업을 허가하는 것이 일반적입니다. 반면에 Docker Container의 Bash 쉘에 직접 명령어는 전달하는 것은 인증없이도 사용할 수 있기 때문에, 적절하지 않을 수 있습니다. 다만 강의에서는 자신만의 환경을 구축하고 실습하는 상황이기 때문에, Docker Container를 통해 명령어를 직접 전달하거나 SSH를 통해 접속하거나 상관없이 같이 작업을 할 수 있다고 보시면 좋을 것 같습니다.

감사합니다.

0

hyun

감사합니다 !

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

도커 터널링으로 접속한다는 것은 SSH(Secure Shell) 대신, 도커 자체가 제공하는 네트워킹 기능을 통해 서비스들 간의 연결을 설정한다는 의미입니다. Docker 컨테이너는 도커 데몬과 통신하기 위해 Unix 소켓이나 네트워크 인터페이스를 사용할 수 있으며, 이를 통해 장치 간의 연결을 안전하게 할 수 있습니다.

SSH로 접속한다는 것은 보안된 채널을 통해 서버에 원격으로 로그인하고 커맨드를 실행하는 방식을 말합니다. Jenkins master를 도커 터널링으로 접속하고, 노드는 SSH로 접속하는 이유는, 노드의 경우 일반적인 서버가 될 수도 있어서 SSH 접속이 자연스럽지만, 마스터는 Jenkins 서비스 자체를 운영하는 컨테이너이기 때문에 Docker 내의 네트워킹 기능을 활용하는 것이 더 효율적일 수 있습니다.

마스터 컨테이너와 노드 사이의 통신 방법이 다른 것은 각각의 목적과 환경에 맞게 최적화하기 위함입니다. 도커 컨테이너 내에서는 도커의 기능을 최대한 활용하는 것이 관리나 성능 측면에서 이점을 가질 수 있고, 전통적인 서버 또는 다른 환경에서는 일반적으로 잘 알려진 SSH를 통한 접속이 더 적합할 수 있습니다.

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

0

84

2

젠킨스에 등록된..

0

98

2

필요한 파일만 가지고 배포할 수 있나요?

0

91

2

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

0

108

2

jdk 버전 17

0

81

2

섹션2 강의자료

0

103

2

DOCKER 이미지 PULL

0

266

1

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

0

63

1

질문이 있습니다!!

0

68

1

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

1

203

4

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

0

159

2

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

0

97

2

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

0

176

2

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

0

255

3

Docker Container에서 Tomcat 설치

0

221

2

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

0

154

1

P@ssw0rd 설정시기

0

147

2

ansible 원리

0

135

2

ansible 존재여부

0

116

2

젠킨스 빌드 성공후 shutdown

0

249

2

Docker Hub에 Push 무한 로딩

0

120

2

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

0

117

1

maven project 오류

0

118

2

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

0

150

2