Docker compose 설치
Docker가 이미 설치된 Debian에서 Docker compose를 설치하는 방법입니다.
sudo apt install docker-compose-plugin
아래 모든 작업은 사용자 환경에서 작업하는 Docker compose를 기반으로 합니다.
홈 폴더에 compose 폴더를 만들어 작업을 진행합니다.
mkdir ~/compose/{nginx,htdocs} -p
compose.yaml
Nginx 컨테이너에 필요한 설정이 모여 있습니다. 이곳에서 참조할 디렉토리 또는 포트 번호를 필요에 따라 다른 값으로 변경 가능합니다.
services:
nginx:
image: nginx:mainline-alpine
ports:
- "80:80"
volumes:
- ./htdocs/:/usr/share/nginx/html/
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
container_name: "web"
image
Docker Hub에서 받아올 이미지와 버전명을 입력합니다.
설정이 변경되지 않은 경우 Nginx 컨테이너는 nginx:mainline-alpine 이미지를 기반으로 작업합니다.
ports
Nginx 컨테이너 내부의 포트와 외부의 포트를 연결하는 경우 사용합니다.
현재 서버가 localhost일 때 ports 설정이 “80:8080″인 경우 Nginx 사용을 위해 localhost:8080으로 접속해야 합니다.
volumes
직접 접근 가능한 파일 또는 디렉토리를 이미지 파일 내부와 연결하는 경우 사용합니다.
연결할 파일 또는 디렉토리를 빌드 이전에 미리 준비해 두어야 합니다.
nginx/default.conf
HTTP로 요청이 들어오면 root 디렉토리에서 index로 설정한 파일을 보여줍니다.
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ /\.ht {
deny all;
}
}
listen
서비스할 포트 번호를 설정합니다. HTTP 기본 포트는 80, HTTPS는 443입니다.
server_name
현재 서버로 접속하는 도메인명을 입력합니다.
서버에 도메인을 연결한 경우 server_name (도메인명)
으로 입력합니다.
root
Nginx가 index 파일을 읽게 될 디렉토리를 설정합니다.
index
index 파일로 읽게 될 파일명과 확장자를 설정합니다.
기본 설정으로 index.html index.htm을 사용합니다.
도메인 또는 IP로 서버에 성공적으로 접속했지만 주소가 없는 경우 index 파일을 가져옵니다.
Docker compose 실행하기
docker compose up -d
빌드한 이후 docker compose start
, docker compose restar
t, docker compose stop
으로 제어할 수 있습니다.
관련 문서
- Ubuntu 서버에 Docker 설치하기
- Docker compose를 사용한 Nginx PHP Mariadb 서버 만들기
- Docker compose를 사용한 Apache2 PHP Mariadb 서버 만들기

INAS의 블LOG에 오신 것을 환영합니다