:::: 개발 ::::/::: 리 눅 스 :::

도커 컴포즈 우분투 실행하고, 외부에서 SSH로 접속 설정

nayha 2025. 1. 31. 19:13
반응형

1. docker-compose.yml 파일 작성

아래 내용을 포함한 docker-compose.yml 파일을 생성하세요.

 

version: '3'

services:
  ubuntu-ssh:
    image: ubuntu:latest
    container_name: ubuntu_ssh
    restart: unless-stopped
    ports:
      - "2222:22"
    volumes:
      - ./init.sh:/root/init.sh
    command: ["bash", "/root/init.sh"]
 

 

2. init.sh 스크립트 작성

컨테이너가 시작될 때 SSH 서버를 설치하고 실행하도록 init.sh 파일을 만들고, 아래 내용을 추가하세요.

 

#!/bin/bash

# 패키지 업데이트 및 SSH 설치
apt update && apt install -y openssh-server

# 루트 계정 비밀번호 설정 (여기서는 'root'로 설정)
echo "root:root" | chpasswd

# SSH 설정 변경 (root 로그인 허용)
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config

# SSH 서비스 실행
service ssh restart

# 컨테이너가 종료되지 않도록 유지
exec bash
 

3. 실행 권한 부여

터미널에서 실행 권한을 설정해 주세요.

chmod +x init.sh

4. 도커 컴포즈 실행

이제 컨테이너를 실행하면 SSH 접속이 가능해집니다.

docker-compose up -d

5. SSH 접속

외부에서 SSH로 접속하려면 다음 명령어를 실행하세요.

ssh root@<호스트 IP> -p 2222

호스트 IP가 192.168.1.100이라면, 다음과 같이 접속하면 됩니다.

ssh root@192.168.1.100 -p 2222

이제 SSH를 통해 우분투 컨테이너에 외부에서 접속할 수 있습니다! 🚀

반응형