[도커] 도커 컴포즈 빌드와 컨테이너 네임

version: '3.8'
services:
  mongodb:
    image: 'mongo'
    volumes:
      - data:/data/db
   # environment:
    #  MONGO_INITDB_ROOT_USERNAME: june
     # MONGO_INITDB_ROOT_PASSWORD: secret
    env_file:
      - ./env/mongo.env

  frontend:
    build: ./frontend
    ports:
      - '3000:3000'
    volumes:
      - ./frontend/src:/app/src
    stdin_open: true
    tty: true
    depends_on:
      - backend
  backend:
    build: ./backend
   # build: 
     # context: ./backend
      #dockerfile: Dockerfile-dev
    ports:
      - '80:80' 
    volumes:
      - logs:/app/logs 
      - ./backend:/app
      - /app/node_modules
    env_file:
      - ./env/backend.env
    depends_on:
      - mongodb


volumes:
  data:
  logs:

docker compose up --build

docker compose up --build

services에서 이미 빌드되어있는 이미지를 가져오는 경우에는 빌드가 필요없지만, 자체 이미지의 경우 위 커맨드를 사용하여 빌드할 수 있다.

up 옵션으로 실행하면 빌드 단계가 포함된다. 이는 컨테이너를 시작하기 위해 이미지를 빌드해야 한다면 빌드 된다.


docker compose build

docker compose build

하지만 컨테이너를 실행하지 않고 빌드만 하려는 경우에는 위 커멘드를 실행하여 이를 수행할 수 있다.

mongodb를 삭제하고 실행했는데, 실제 누락된 이미지를 빌드한 다음 컨테이너를 시작하지 않는다.

 

docker compose up -d

그리고 compose up 을 하면 mongodb의 이미지를 가져오는것을 볼 수 있다.


도커 컴포즈 컨테이너 이름

docker compose up 을 해서 만들어진 컨테이너의 이름이 실제 우리가 services에 넣었던 이름이 그대로 들어가는것이 아니라 일부분으로만 들어가는것을 볼 수 있다.

{docker compose up 이 실행되었던 폴더} {services에 넣은 이름} {증가되는 숫자}


container_name

services:
  mongodb:
    image: 'mongo'
    volumes:
      - data:/data/db
   # environment:
    #  MONGO_INITDB_ROOT_USERNAME: june
     # MONGO_INITDB_ROOT_PASSWORD: secret
    env_file:
      - ./env/mongo.env
    container_name: mongodb

자체 컨테이너 이름을 지정하려면 container_name 옵션을 지정해야한다.

이렇게 docker ps 로 확인했을 때 컨테이너의 이름이 mongodb로 잘 나오는것을 볼 수 있다.

 

JUNE .

20'S LIFE IN SYDNEY and BUSAN

    이미지 맵

    DevOps Study/Docker 다른 글

    이전 글

    다음 글