1단계 Docker 설치 및 실행

단계별로 접근할 때, 문의를 해본다.

"1단계 부터 해보자."

좋습니다! 1단계: Docker 기본 이해 및 Synology에서 사용법 익히기 단계부터 차근히 시작해보죠.

1단계: Synology NAS에서 Docker 기본 사용법 익히기

1-1. Docker 패키지 설치

  1. DSM(웹관리페이지)에 로그인
  2. 패키지 센터 > 검색창에 Docker 입력
  3. Docker 패키지를 설치
  4. 설치 후 "열기"를 눌러 Docker GUI 실행

1-2. 첫 Docker 이미지 실행 (hello-world or nginx)

(1) Docker에서 이미지 검색 및 다운로드

  • Docker GUI > 레지스트리 탭 클릭
  • nginx 검색 > nginx:latest 선택 후 다운로드

(2) 이미지 실행 (포트 매핑 포함)

  • 이미지 탭 > nginx:latest 선택 > 실행
  • 컨테이너 이름: test-nginx
  • 포트 설정: 로컬 포트: 8080컨테이너 포트: 80
    => 로컬 포트는 설정을 할 수가 없어서 이 부분 분석하는데 시간이 소요되었다.

(3) 결과 확인

  • 브라우저에서 http://NAS_IP:로컬포트 접속
  • nginx Welcome Page가 나오면 성공!

(4) 결과 확인

CLI에서 하면, 로컬 포트도 설정 가능함을 몇 번의 시도로 알 수 있었다.

sudo docker run --name test-nginx2 -p 8081:80 -d nginx

1-3. 컨테이너 관리 실습

  • 컨테이너 탭에서 test-nginx 확인
    • 시작 / 중지 / 재시작 / 로그 보기
    • 중지 후 삭제도 해보세요
  • 볼륨 탭 확인: 아직은 없음 (2단계에서 실습 예정)

1-4. 명령어로도 실행해보기 (선택사항, SSH 접속 필요)

Synology NAS에 SSH 접속이 가능하다면:

docker run --name hello-container hello-world
  • 메시지에 "Hello from Docker!"가 나오면 성공

다음 단계로 넘어가기 전 체크리스트

  • Docker 패키지를 설치했다
  • Docker GUI에서 이미지(nginx)를 다운로드하고 실행해 봤다
  • 브라우저에서 nginx 페이지를 확인했다
  • 컨테이너 시작/중지/삭제를 해봤다

2단계

"단계 2를 해보자."라는 Prompting으로 다음 사항이 제공된다.

✅ 2단계 목표 요약

  1. Python Docker 이미지 다운로드 (python:3.10 권장)
  2. NAS의 공유 폴더를 Docker 컨테이너에 마운트
  3. Python 컨테이너에서 간단한 웹 크롤링 코드 실행 (requests, beautifulsoup4)
  4. 코드 실행 결과를 NAS 폴더에 저장

🔧 준비: NAS에 공유 폴더 하나 만들기 (예: docker-scripts)

Synology DSM > 제어판 > 공유 폴더에서 다음처럼 하나 생성:

  • 이름: docker-scripts
  • 내부 경로 예: /volume1/docker-scripts -> /volume2/backups/scripts를 사용하기로 함.
  • 이후 Python 코드 파일을 여기에 넣고 Docker 컨테이너에서 마운트해서 사용할 예정

✅ Step-by-Step: Docker CLI로 Python 컨테이너 실행

📥 1. Python 이미지 다운로드

sudo docker pull python:3.10

최신 안정 버전으로 3.10을 권장하지만, 필요 시 다른 버전도 가능 (3.11, 3.9 등)

🗂 2. 예제 코드 파일 생성

/volume1/docker-scripts/test.py로 아래 코드를 저장하세요:
-> /volume2/backups/scripts에 저장

# test.py
import requests
from bs4 import BeautifulSoup

res = requests.get("https://example.com") # examples.com으로 변경해서 테스트
soup = BeautifulSoup(res.text, "html.parser")
print("Page title:", soup.title.string)

``

🚀 3. Docker 컨테이너 실행 (NAS 폴더 마운트)

sudo docker run -it --rm \
  --dns=1.1.1.1 \
  -v /volume2/backups/scripts:/app \
  python:3.10 bash

이 명령은:

  • -it: 인터랙티브 터미널
  • --rm: 실행 후 컨테이너 자동 삭제
  • -v: NAS 공유 폴더 /volume2/backups/scripts 를 컨테이너 내부 /app으로 마운트

🧪 4. 컨테이너 내부에서 실행

cd /app
pip install requests beautifulsoup4
python test.py

결과:

Page title: 403

✅ 잘 되었는지 확인 체크리스트

  • python:3.10 이미지 다운로드 성공
  • /volume1/docker-scripts/test.py 파일 생성
  • Docker 컨테이너에서 /app/test.py 실행
  • Page title: 출력 확인

성공했다면 이제 Python 코드도 NAS에서 Docker로 돌릴 수 있게 된 거예요!

+ Recent posts