본문으로 건너뛰기
← 가이드 목록

Docker 설치하고 사용하기

Docker를 쓰면 프로그램과 실행 환경을 통째로 묶어서 어느 서버에서나 똑같이 실행할 수 있습니다. Ubuntu 서버 기준으로 설명합니다.

1. 설치

Docker 공식 설치 스크립트를 사용합니다.

curl -fsSL https://get.docker.com | sudo sh

매번 sudo를 붙이지 않으려면 내 계정을 docker 그룹에 넣고 다시 접속합니다.

sudo usermod -aG docker $USER

설치가 잘 됐는지 확인합니다.

docker run --rm hello-world

"Hello from Docker!"가 나오면 성공입니다.

2. 컨테이너 실행해보기

웹서버(Nginx)를 띄워봅니다.

docker run -d --name web -p 80:80 --restart unless-stopped nginx
  • -d 백그라운드 실행
  • -p 80:80 서버의 80번 포트를 컨테이너의 80번 포트로 연결
  • --restart unless-stopped 서버가 재부팅돼도 자동으로 다시 실행

브라우저에서 http://서버IP로 접속하면 Nginx 화면이 보입니다.

3. 자주 쓰는 명령어

docker ps                 # 실행 중인 컨테이너 목록
docker logs -f web        # 로그 보기 (Ctrl + C로 나가기)
docker restart web        # 재시작
docker stop web           # 정지
docker rm web             # 삭제 (정지 후)
docker images             # 받아둔 이미지 목록
docker system df          # Docker가 쓰는 디스크 용량

4. Docker Compose로 여러 개 한 번에

설정 파일 하나로 여러 컨테이너를 함께 관리할 수 있습니다. compose.yaml 파일을 만듭니다.

services:
  web:
    image: nginx
    ports:
      - "80:80"
    restart: unless-stopped
docker compose up -d      # 실행
docker compose down       # 정지 및 삭제
docker compose logs -f    # 로그 보기

⚠️ 방화벽 주의

Docker로 연 포트(-p)는 ufw 방화벽 설정을 무시하고 외부에 열립니다. DB처럼 서버 안에서만 써야 하는 컨테이너는 아래처럼 127.0.0.1에만 연결하세요.

docker run -d --name db -p 127.0.0.1:3306:3306 -e MARIADB_ROOT_PASSWORD=긴비밀번호 mariadb

방화벽 설정은 방화벽 포트 열기를 참고하세요.

디스크가 가득 찼어요

안 쓰는 이미지·컨테이너가 쌓이면 디스크를 많이 차지합니다.

docker system prune

실행 중이 아닌 컨테이너와 쓰지 않는 이미지를 정리합니다. 지워도 되는지 확인 후 y를 입력하세요.

해결되지 않는 문제가 있다면 고객센터로 문의해주세요.