티스토리 뷰

Docker에 Linux Container를 올린 후, SSH 접속 프로그램(Putty)을 통해 접속하는 방법을 알아보도록 하겠습니다.

리눅스 관련 이미지 받기

우선 Docker Hub에서 리눅스 OS와 관련된 이미지(CentOS / Ubuntu)를 다운 받아야 합니다. 저는 Ubuntu 이미지를 다운 받아 실행하였습니다.

# 명령어를 통해 ubuntu와 관련된 이미지들을 확인합니다.
docker search ubuntu

 

이 중, STARS가 가장 많고 OFFICIAL 항목이 [OK]인 이미지는 공식적인 이미지이며, 신뢰성 있는 이미지입니다.

그럼 다음과 같은 명령어를 통해 최상단의 ubuntu 이미지를 다운 받습니다.

# 'ubuntu' 이름을 가진 이미지를 다운받습니다.
docker pull ubuntu

 

그럼 이미지를 성공적으로 다운받았는지 확인해 봅시다.

#로컬에 저장된 이미지 목록 확인
docker images


리눅스 컨테이너 생성하기

이미지를 성공적으로 다운 받으셨다면, 이제 컨테이너를 생성해 보겠습니다. 다음과 같은 명령어를 통해 컨테이너를 생성합니다. 

# docker run -itd --name {컨테이너 명} -p {외부 접속 포트 : 컨테이너 포트 포워딩 포트} {이미지 명}
docker run -id --name swenti-crawling -p 32777:22 ubuntu

 

  • run: 컨테이너 생성 및 실행
  • -d: 데몬 프로세스로 실행, 프로세스가 끝나도 유지. 즉, 백그라운드에서 실행
  • -i: 사용자가 입/출력할 수 있는 상태
  • -t: 가상 터미널 환경 활성화
  • -p: 포트 설정. 32777:22의 경우 외부에서 docker의 32777 포트로 접속 시 해당 컨테이너의 22번 포트로 포트 포워딩
  • --name: 컨테이너 이름 설정

 

컨테이너를 성공적으로 생성하였다면, 다음 명령어를 통해 잘 생성되었는지 확인해봅시다. 

#전체 컨테이너 목록 확인
docker ps -a

 

제가 생성한 'swenti-crawling' 컨테이너가 잘 생성된 것을 볼 수 있습니다.


SSH 접속을 위한 작업

컨테이너를 생성했다고 바로  접속할 순 없습니다. 접속하는 서버의 포트를 개방해야 외부에서 Putty를 통해 컨테이너로 접속할 수 있습니다.

그럼, Teminal(MacOS) 혹은 CMD, Powershell(Windows) 에서 아래 명령어를 통해 포트를 개방해줍시다.

# MacOS 환경
sudo ufw allow 32777 (MacOS)

# Windows 환경
netsh advfirewall firewall add rule name"Allow Port 32777" dir=in action=allow protocol=TCP localport=32777

 

외부에서 접속하기 위한 작업이 끝났다면, 컨테이너 내부에도 외부 요청을 받아주기 위한 작업을 해주어야 합니다.

#bash 작업으로 컨테이너 내부에 접속하기
docker exec -it swenti-crawling bash

 

컨테이너에 성공적으로 접속하셨다면 다음 명령어로 모듈을 설치 합니다.

apt update && apt install net-tools vim openssh-server ufw

 

그리고, Putty를 통해 root 계정으로 접속하기 위해 vi 편집기를 통해 /etc/ssh/sshd_config 파일을 수정합니다.

vi /etc/ssh/sshd_config

 

PermitRootLogin 옵션에 대한 주석을 해제하고 값을 yes로 설정합니다.

이제 컨테이너 내부 작업도 끝났습니다.

다음 명령어를 통해 ssh를 시작해주겠습니다.

#ssh 서비스 시작 또는 재시작하기
service ssh start
service ssh restart

컨테이너 접속하기

이제 Putty를 켜서 다음과 같이 값을 지정한 후에 접속해봅시다.

  • HostName: localhost
  • Port: 32777

그럼 성공적으로 컨테이너에 접속할 수 있게 됩니다.

공지사항
최근에 올라온 글
Total
Today
Yesterday