코딩 초보도 마우스 클릭으로 서버 관리? 도커 포테이너 세팅 웹사이트 띄우기 & 워드프레스 수익화 3편

안녕하세요! [지난 2편: Cloudflare와 Nginx로 도메인 연결 및 무료 HTTPS 달기] 과정은 무사히 마치셨나요? 도커 포테이너 세팅하러 가봅시다! 내 이름으로 된 도메인에 안전한 자물쇠 마크까지 달렸다면 서버의 기초 공사는 완벽하게 끝난 것입니다. 지금까지는 까만 터미널 창에 알 수 없는 명령어들을 직접 타이핑하며 서버를 다뤘습니다. 하지만 앞으로 블로그, 웹 애플리케이션, 데이터베이스 등 다양한 서비스를 올릴 때마다 명령어를 치는 것은 너무 피곤한 일이죠. 그래서 오늘은 코딩 초보자도 마우스 클릭만으로 서버를 관리할 수 있도록 만들어주는 도커 포테이너 세팅 방법을 낱낱이 파헤쳐보겠습니다.

도커(Docker) 완벽 설치 가이드

왜? 해야 하나? (도커)를 사용하면 서버 환경이 어지러워지는 것을 방지하고 애플리케이션 관리가 매우 쉬워집니다. 성공적인 도커 포테이너 세팅을 위해서는 먼저 서버에 도커 엔진을 설치해야 합니다. 도커(Docker)는 복잡한 프로그램들을 ‘컨테이너’라는 독립된 박스에 담아 서버에 쉽게 올리고 지울 수 있게 해주는 혁신적인 기술입니다.

장점 1. “내 컴퓨터에선 되는데 서버에선 왜 안 되지?” 문제 해결
2. 서버의 깔끔한 독립성 유지 (오염 방지)
3. 원클릭 실행 및 배포 (Docker Compose)
4. 쉬운 롤백과 확장.
서버 위에 언제든지 꼈다가 뺏다 할 수 있는 레고 블럭 처럼 다루는 것 입니다!

오라클 우분투 서버 터미널에 접속하여 도커 포테이너 세팅을 위해 아래 명령어들을 순서대로 복사해서 실행해 주세요.

Bash

# 1. 핵심 도커 패키지 직접 설치
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

설치가 완료되면, 매번 sudo를 붙이는 번거로움을 없애기 위해 현재 사용자에게 도커 실행 권한을 부여하고 서비스를 활성화합니다.

Bash

# 1. 도커 소켓 파일에 그룹 권한 부여
sudo chmod 666 /var/run/docker.sock

# 2. 도커 권한 부여 및 서비스 자동 시작 활성화
sudo usermod -aG docker ubuntu
sudo systemctl enable docker
sudo systemctl start docker

# 3. 권한 즉시 적용 (이후 SSH 재접속 권장)
newgrp docker

버전 정보가 정상적으로 출력되면 도커 설치가 완료된 것입니다!

터미널에 docker run hello-world를 입력했을 때 “Hello from Docker!”라는 환영 문구가 뜬다면 도커 포테이너 세팅 중 도커 설치가 완벽하게 끝난 것입니다.

도커 포테이너 세팅 완료 화면

마우스 클릭으로 끝내주는 도커 포테이너 세팅

도커가 깔렸으니, 이제 이 도커를 웹 브라우저 화면에서 마우스로 쉽게 조작하게 해주는 그래픽 도구인 ‘도커 포테이너 세팅을 할 차례입니다. 진정한 도커 포테이너 세팅의 핵심 단계입니다.

터미널에서 아래 2단계 명령어만 실행하시면 1분 만에 설치가 끝납니다.

Bash

# 1. Portainer 전용 데이터 저장소(볼륨) 생성
docker volume create portainer_data

# 2. Portainer 도커 컨테이너 실행
docker run -d \
  -p 127.0.0.1:9000:9000 \
  -p 127.0.0.1:9443:9443 \
  --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

접속 시 주의사항: 오라클 클라우드 방화벽(Ingress Rule) 및 우분투 방화벽에서 9000번 포트가 열어 봅시다!

DNS에 서브도메인 A 레코드 추가

도메인 관리 사이트 Cloudflare, 저번에 했던 DNS 설정에 레코드를 추가합니다.

  • 타입: A
  • 호스트/이름: portainer
  • 값/IP: _____________ 예)151.145.64.153
  • TTL: 기본값 (또는 300~3600)

Nginx 설정 파일 생성

서버 터미널에서 Nginx 설정 파일을 새로 만듭니다.

Bash

sudo nano /etc/nginx/sites-available/portainer___________
# 예)                                        .rudrjs.com

열린 편집기 화면에 아래 내용을 그대로 붙여넣습니다.

Nginx

server {
    listen 80;
    server_name portainer.________.com;

    location / {
        proxy_pass http://127.0.0.1:9000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

저장 후 닫기: Ctrl + O -> Enter -> Ctrl + X

사이트 활성화 및 Nginx 재시작

Bash

# 심볼릭 링크 생성 (활성화)
sudo ln -s /etc/nginx/sites-available/portainer._________/etc/nginx/sites-enabled/
  # 예)                                         rudrjs.com

# 문법 오류 검사
sudo nginx -t

# Nginx 다시 불러오기
sudo systemctl reload nginx

Let’s Encrypt SSL(HTTPS) 인증서 발급

Certbot을 실행해 무료 SSL 인증서를 발급하고 자동 HTTPS 리다이렉트를 적용합니다.

Bash

sudo certbot --nginx -d portainer.__________
 # 예)                             rudrjs.com

명령어 실행 중 질문이 나오면:

  1. 이메일 입력 요청 -> 본인 이메일 입력
  2. 약관 동의 -> Y 입력
  3. 이메일 수신 동의 -> N (또는 Y) 입력
  4. 2 (Redirect – 권장)

접속 확인

브라우저 주소창에 포트 번호 없이 접속해 보세요.

  • 접속 주소: [https://portainer.______.com](https://portainer.______.com)\
  1. 최초 접속시에 초기 비밀번호(12자 이상) 설정 화면이 나오면 성공입니다. 브라우저로 접속해 12자리 이상의 안전한 비밀번호로 초기 관리자 계정을 생성해 주세요.

포테이너가 실행되었다면, Nginx 리버스 프록시 설정을 통해 portainer.내도메인.com과 같이 나만의 서브도메인으로 안전하게 접속할 수 있도록 연결해 주면 도커 포테이너 세팅이 최종적으로 마무리됩니다.

내 도메인 메인에 포트폴리오 웹사이트 띄우기

도커 포테이너 세팅이 완료되었으니, 이제 내 메인 도메인(rudrjs.com)에 접속했을 때 텅 빈 화면 대신 세련된 단일 HTML 포트폴리오 랜딩 페이지를 띄워보겠습니다. 추후 서브도메인(blog.rudrjs.com)에 매거진 스타일의 Blocksy 테마를 씌워 본격적인 수익화 블로그를 오픈하기 전, 메인 허브 역할을 해줄 멋진 명함입니다.

터미널에서 웹 파일들을 보관할 폴더를 만듭니다.

Bash

# 웹 루트 디렉토리 생성
sudo mkdir -p /var/www/__________
 # 예)                 rudrjs.com

# index.html 파일 생성 및 편집
sudo nano /var/www/__________/index.html
 # 예)             rudrjs.com

열린 편집창에 다크 모드 스타일의 모던한 HTML/CSS 코드를 작성하여 저장합니다. (본인의 직무, 링크, 깃허브 주소 등으로 자유롭게 수정할 수 있습니다.)

이제 Nginx가 이 HTML 파일을 바라보도록 설정 파일을 추가해 줍니다.

Bash

sudo nano /etc/nginx/sites-available/__________
 # 예)                               rudrjs.com

Nginx

#server 안에 넣기!

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

Ctrl + O -> Enter -> Ctrl + X
마지막으로 심볼릭 링크를 생성하여 설정을 활성화하고, Certbot을 이용해 메인 도메인에도 무료 SSL(HTTPS) 인증서를 발급받아 줍니다.

Bash

sudo ln -s /etc/nginx/sites-available/rudrjs.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d __________ -d ______________
 # 예)                  rudrjs.com    www.rudrjs.com  

※ 만약 중간에 Nginx 파일을 나갔다 들어왔는데,
잘 안된다 하면!!

키보드에서 N (No)을 눌러 파일 열기를 취소합니다.

Bash

# 백그라운드에 멈춰있는 nano 프로세스 종료
sudo killall nano

# 생성된 임시 스왑 파일 삭제
sudo rm -f /etc/nginx/sites-available/.default.swp

# 파일 다시 열기
sudo nano /etc/nginx/sites-available/default

마무리하며

수고하셨습니다! 오늘은 도커 포테이너 세팅을 통해 서버 관리의 난이도를 획기적으로 낮추고, 내 도메인 메인에 초고속으로 로딩되는 나만의 포트폴리오 웹사이트를 배포하는 방법까지 알아보았습니다.

탄탄한 인프라가 준비되었으니, 다음 포스팅에서는 드디어 우리의 최종 목표인 ‘수익화 블로그’ 구축을 위해 서브도메인에 워드프레스를 설치하고, 세련된 레이아웃을 자랑하는 Blocksy 테마를 씌우는 비법을 공유해

“코딩 초보도 마우스 클릭으로 서버 관리? 도커 포테이너 세팅 웹사이트 띄우기 & 워드프레스 수익화 3편”에 대한 2개의 생각

댓글 남기기