본문 바로가기

개발

[MobaXterm] SSH 접속 + Docker 이미지 서버에 배포

"로컬의 웹 서버를 docker 이미지로 만든 후
mobaxterm을 사용하여 ssh에 접속 후 도커 이미지를 oracle cloud 서버로 전송해 실행할 것이다."


1. MobaXterm 설치

https://mobaxterm.mobatek.net/download-home-edition.html

 

MobaXterm free Xserver and tabbed SSH client for Windows

The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!

mobaxterm.mobatek.net

위의 링크에서 다운로드 한다.

 
압축 해제 후 instaler를 실행한다.

 
기본으로 설정한 후 종료한다.


2. SSH로 접속

 

Session > SSH에서 아래의 항목들을 입력한다.

 

Remote host = 오라클 서버의 public ip
Specify username = 원하는 대로 설정
Advanced SSH settings
오라클에서 발급받은 ssh.key 비밀 키 파일 넣어준다.

 

+) 만약 key에 권한이 없다고 등록이 안된다면 아래 코드로 권한 초기화 및 사용자 재지정 하기

icacls "___.key" /reset
icacls "___.key" /inheritance:e

 

 


3. 서버 설정 

■ 서버 초기 설정

시스템 패키지 업데이트

sudo apt update && sudo apt upgrade -y

 

방화벽 설정 -  SSH(22번 포트)만 허용하고, 나머지 모든 외부 접속은 차단한 채로 방화벽(UFW)을 켠다

주의) ufw enable는 기본적으로 모든 포트를 차단하므로

OpenSSH 허용 전에 UFW를 enable하면 접속 끊김 위험이 있습니다.

아래처럼 반드시 OpenSSH 허용 후 sudo ufw enable 해주세요 

 

 

sudo ufw allow OpenSSH && sudo ufw enable

 

파이썬 설치 (필요할 경우)

sudo apt install python3-pip



  도커 설치

sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker


4. Docker image 서버에 업로드

로컬에서 생성한 .tar 파일을 아래 이미지같은 Mobaxterm 원하는 곳에 드래그해서 업로드

 

+) .tar 파일 생성하는 법

https://yun000.tistory.com/333

 

[Docker] 이미지 생성 및 테스트

"python fastapi 프로젝트를 docker 이미지로 만들고 테스트 해보자"1. requirements.txt 정리pywin32는 Windows 전용 패키지이므로 Linux 환경(Docker, 서버 등)에서는 오류를 발생시킬 수 있다.그렇기에 requirements.t

yun000.tistory.com

아직 .tar파일을 올리기 전의 모습이다

 

서버에서 import

sudo docker load -i [파일명].tar


이미지 제대로 올라갔는지 확인하기

sudo docker images


백그라운드 실행하기

sudo docker run -d -p [외부에서 접속할 포트]:[컨테이너 포트] [이미지명]

5. Oracle Cloud에서 방화벽 열기

Oracle Cloud Console에서 virtual cloud network 검색 후 접속

 

원하는 vcn 선택 

 
내부에 Subnet에서 subnet 목록 선택 후
Security 접속. Security List에서 Security List선택 > Security rules > Add Ingress Rule

 

아래 항목들을 채워서 방화벽을 설정 하자

 

source type= 트래픽 출처 유형 ex) CIDR
source CIDR= 트래픽 출처 IP주소 범위

ex)0.0.0.0/0 (모든 ip허용. 테스트에만 사용) or 123.456.78.0/24 (개인 혹은 회사 등 특정 ip설정)
IP Protocol= 허용할 IP 프로토콜 지정 ex) TCP
Source Port Range= 트래픽 출처 포트 범위 지정
Destination Port Range=트래픽 대상 포트 범위 ex) 8080

 


5. 결과 확인

http://[Oracle_VM_Public_IP]: [포트번호]/docs

 

Swagger 문서가 정상적으로 열리면 (swagger사용할 경우) 배포가 성공한 것이다.


+) CI/CD 구현하기

매번 프로젝트가 수정될 때 마다 이 과정을 다시 진행하면 귀찮을테니 Github Actions로 CI/CD파이프라인을 구축해보자
https://yun000.tistory.com/332

 

[Github Action] CI/CD 구현

" GitHub Actions를 사용하여 CI/CD 파이프라인을 구성하고Docker 이미지를 빌드한 뒤 Oracle Cloud 서버에 전송하여 자동 배포하자"이 글의 예제 프로젝트의 스펙백엔드 프레임워크: Python 3.x / FastAPI서버 :

yun000.tistory.com

 

+) to - do

Nginx 리버스 프록시로 특정 포트 대신 80 포트로 접속 가능하게 만들기

암호화된 통신을 위해 Let's Encrypt + Certbot으로 무료 SSL 인증서 붙이기

'개발' 카테고리의 다른 글

[Docker] 이미지 생성 및 테스트  (1) 2025.08.04
[Github Action] CI/CD 구현  (1) 2025.08.04
[Google API] Gmail API 사용법  (0) 2025.07.22
[Redis] Spring Boot에서 Redis 캐싱  (0) 2025.04.19
[Redis] node.js에서 Redis 캐싱  (0) 2025.04.19