728x90
오늘은 Docker Container을 SSH로 접속해서 사용할 수 있는 방법에 대해 알려드리려고 합니다. 각자의 포트를 통해 컨테이너에 따로 접속해서 서로 영향을 미치지 않고 사용할 수 있게 됩니다.
Dockerfile 작성하기
FROM python:3.12
RUN apt-get update && apt-get upgrade -y && apt-get install -y vim openssh-server net-tools
가장 최소한으로 작성하였습니다. SSH 접속을 할 때, Dockerfile은 크게 고려하지 않으셔도 됩니다. Container를 실행할 때 포트포워딩이 핵심입니다.
이미지 빌드하기
docker build -t ssh_image .
Container 실행하기
# docker run -idt -p 원하는포트:22 --name=my_ssh ssh_image
docker run -idt -p 8888:22 --name=my_ssh ssh_image
저는 8888 포트를 이용해 ssh에 접속을 할 것입니다.
이 코드를 통해 외부에서 8888포트로 들어오는 것을 컨테이너의 22번 포트로 들어오게 합니다. 이때 ssh의 기본포트는 22이므로 22로 설정했습니다.
Container 접속하기 및 라이브러리 설치
# Container 접속
docker exec -it my_ssh /bin/bash
컨테이너에 접속해서 root의 비밀번호를 설정합니다.
# 라이브러리 설치
apt-get update && apt-get upgrade -y && apt-get install -y vim openssh-server net-tools
혹시 다른 이미지를 빌드하신 분은 다음 코드를 입력해서 필요한 라이브러리를 설치합니다.
비밀번호 설정
# vi editor을 이용해 RootLogin을 설정합니다.
vi /etc/ssh/sshd_config
#PermitRootLogin prohibit-password를 다음과 같이 변경합니다.
그리고 :wq 입력해서 저장하고 나옵니다.
# 비밀번호 설정
passwd
passwd입력 후 비밀번호를 2번 입력합니다.
SSH service 켜기
service ssh start
service ssh status
netstat -ntl
다음과 같이 코드를 3개를 입력하고 출력이 된다면 성공입니다.
현재 22번 포트에 대해 입력을 받는 것을 확인할 수 있습니다.
SSH 접속하기
# ssh root@ip주소 -p 포트번호
ssh root@127.0.0.1 -p 8888
-> 비밀번호 입력
다음과 같이 ip주소를 입력하고 포트번호를 입력하고 비밀번호를 입력하면 ssh로 접속이 가능하게 됩니다.
'Program > Docker' 카테고리의 다른 글
[Docker] Docker-Compose에 대해 알아보자 (0) | 2024.05.18 |
---|---|
[Docker] Dockerfile 명령어 모음집 (1) | 2024.04.19 |
[Docker] Container 내부에서 GPU 사용하는 방법 (0) | 2024.04.10 |
[Docker] Docker와 Google Cloud를 이용해 Flask Web서버 배포하기 (1) | 2024.04.07 |