[DOCKER] compose 사용
Posted by Albert 20Day 15Hour 22Min 46Sec ago [2025-03-30]
도커파일을 이용하여 여러 이미지를 일일히 빌드 컨테이너 실행하기가 넘 불편하다
이런 문제를 해결하기위하여 compose plugin사용하면 편하게 실행할수있을뿐만아니라 문서로 저장하여 추후 관리하기도 편해진다.
설치
root@albert:/work/study/gunicorn/django' apt-get update
root@albert:/work/study/gunicorn/django' apt-get install docker-compose-plugin
root@albert:/work/study/gunicorn/django' docker compose version
Docker Compose version v2.34.0
쌤플 구조
├── django
│ ├── Dockerfile
│ ├── myapp
│ │ ├── db.sqlite3
│ │ ├── manage.py
│ │ └── myapp
│ │ ├── asgi.py
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-311.pyc
│ │ │ ├── settings.cpython-311.pyc
│ │ │ ├── urls.cpython-311.pyc
│ │ │ └── wsgi.cpython-311.pyc
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ └── requirements.txt
├── docker-compose.yml
├── nginx
│ ├── default.conf
│ └── Dockerfile
└── postgres
└── Dockerfile
docker-compose.yml 파일 구성내용
version: "3"
services:
djangotest:
build: ./django
networks:
- composenet01
depends_on:
- postgrestest
restart: always
nginxtest:
build: ./nginx
networks:
- composenet01
ports:
- "80:80"
depends_on:
- djangotest
restart: always
postgrestest:
build: ./postgres
networks:
- composenet01
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: mysecretpassword
POSTGRES_DB: postgres
volumes:
- composevol01:/var/lib/postgresql/data
restart: always
networks:
composenet01:
volumes:
composevol01:
compose 실행하면 알아서 이미지 빌드 , 네트워크, 볼륨,컨테이너 생성해준다
root@albert:/work/study/compose' docker compose up -d --build
✔ djangotest Built 0.0s
✔ nginxtest Built 0.0s
✔ postgrestest Built 0.0s
✔ Network compose_composenet01 Created 0.0s
✔ Volume "compose_composevol01" Created 0.0s
✔ Container compose-postgrestest-1 Started 0.3s
✔ Container compose-djangotest-1 Started 0.4s
✔ Container compose-nginxtest-1 Started
root@albert:/work/study/compose' docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54999c4e5a75 compose-nginxtest "/docker-entrypoint.…" 14 seconds ago Up 14 seconds 0.0.0.0:80->80/tcp, [::]:80->80/tcp compose-nginxtest-1
542ce5b8cd7e compose-djangotest "/bin/sh -c 'gunicor…" 14 seconds ago Up 14 seconds 8000/tcp compose-djangotest-1
a5118c988a40 compose-postgrestest "docker-entrypoint.s…" 14 seconds ago Up 14 seconds 5432/tcp compose-postgrestest-1
실행결과
컴포즈 삭제
root@albert:/work/study/compose' docker compose down
WARN[0000] /work/study/compose/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 4/4
✔ Container compose-nginxtest-1 Removed 0.2s
✔ Container compose-djangotest-1 Removed 10.2s
✔ Container compose-postgrestest-1 Removed 0.2s
✔ Network compose_composenet01 Removed 0.1s
root@albert:/work/study/compose' docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
끝