이 포스트에서는 Windows PC에 Docker를 이용해 CentOS를 설치하고, 다른 네트워크에 있는 MacBook에서 해당 CentOS에 SSH로 접근하는 방법을 정리
1. Docker 설치 및 CentOS 컨테이너 생성
먼저, Docker Desktop을 Windows에 설치. Docker 설치 후, 터미널을 열고 다음 명령어로 네트워크를 생성:
docker network create -d bridge --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=eth0 test
- parent: Docker 호스트의 이더넷 인터페이스 (일반적으로
eth0
) - gateway: 현재 IP가 할당된 게이트웨이
이후, CentOS 컨테이너를 생성하고 SSH 설정을 위해 --privileged
옵션을 사용:
docker create -it -p 5222:22 --privileged=true --network test --ip 192.168.0.201 --name centos centos:latest /sbin/init
또는 컨테이너를 바로 실행하려면:
docker run -it -p 5222:22 --privileged=true --network test --ip 192.168.0.201 --name centos centos:latest /sbin/init
- 네트워크 옵션을 추가하고, 비어있는 사설 IP 대역 내에서 IP를 할당.
2. CentOS 저장소 URL 수정
CentOS 8 이상 버전에서는 yum
명령어가 동작하지 않을 수 있다. 이 경우, 다음 sed
명령어를 사용해 저장소 URL을 수정:
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*
3. 패키지 업데이트 및 SSH 설정
컨테이너 내에서 다음 명령어로 패키지를 업데이트하고, SSH 서버를 설치 및 시작:
yum -y update
yum -y install net-tools openssh-server
systemctl start sshd
systemctl status sshd
netstat -ntl
netstat -ntl
명령어를 실행해 22번 포트가LISTEN
상태인지 확인.
이후, root
계정이나 새로 생성한 사용자 계정에 비밀번호를 설정한다. 비밀번호 변경 시 passwd
명령어를 설치해야 할 수도 있다:
yum install -y passwd
useradd -d /home/testuser testuser
passwd testuser
4. 포트포워딩 설정
이제 서로 다른 네트워크를 사용하는 두 공유기 간에 포트 포워딩을 설정한다.
- A 공유기 (ipTIME): 게이트웨이 192.168.0.1
- A 네트워크의 호스트 PC: IP 192.168.0.21 (Docker 컨테이너 실행 중)
- Docker 컨테이너: IP 192.168.0.201, 포트 매핑 5222:22
- B 공유기 (ASUS): 게이트웨이 192.168.50.1
A 공유기 (ipTIME) 포트포워딩 설정
ipTIME 공유기에서 고급 설정 > NAT/라우터 관리 > 포트포워드 설정으로 이동하여 다음과 같이 설정한다:
- 내부 IP 주소: 192.168.0.21
- 프로토콜: TCP
- 외부 포트: 5222
- 내부 포트: 22
B 공유기 (ASUS) 포트포워딩 설정
ASUS 공유기에서 고급 설정 > WAN > 가상 서버 / 포트 포워딩 메뉴로 이동해 포트포워딩을 추가한다:
- 서비스 이름: iptime_192.168.0.1 (원하는 이름)
- 프로토콜: TCP
- 외부 포트: 5222
- 내부 포트: 5222
- 내부 IP 주소: 192.168.0.1 (A 공유기의 IP)
5. 연결 테스트
모든 설정이 완료되면, MacBook 터미널에서 다음 명령어로 포트 연결을 테스트:
nc -zv 192.168.0.21 5222
성공 메시지(Connection to 192.168.0.21 port 5222 succeeded!
)가 나타나면 통신이 잘 되고 있다는 의미.
6. SSH 접속
이제 MacBook에서 SSH를 사용해 Docker 컨테이너에 접속할 수 있다:
ssh testuser@192.168.0.21 -p 5222