[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





LIST

Copyright © 2014 visionboy.me All Right Reserved.