본문 바로가기
IT

[docker] compose 기본 명령어

by 내일은교양왕 2024. 6. 4.

다루는 명령어

docker-compose -f mogo-service.yaml up -d

docker-compose -f mogo-service.yaml down

 

docker-compose -f mogo-service.yaml start

docker-compose -f mogo-service.yaml stop

 

docker network ls


 

docker compose 기본 개념

 - a tool for defining and running multi-container apps.

 - simplifies the control of your entire application stack, making it easy to manage services, networks, and volumes in a single.

 - by default, compose sets up a single network for your app

 

mongo-service.yaml

version: '3.1'
services:
    my-app:
      build: .
      ports:
        - 3000:3000
      environment:
        MONGO_DB_USERNAME: ${MONGO_ADMIN_USER}
        MONGO_DB_PWD: ${MONGO_ADMIN_PASS}


    mongodb:
      image: mongo
      ports:
        - 27017:27017
      environment:
        MONGO_INITDB_ROOT_USERNAME: ${MONGO_ADMIN_USER}
        MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ADMIN_PASS}

    mongo-express:
      image: mongo-express
      ports:
        - 8081:8081
      environment:
        ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_ADMIN_USER}
        ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_ADMIN_PASS}
        ME_CONFIG_MONGODB_SERVER: mongodb
      depends_on:
        - "mongodb"

 

 

docker compose 백그라운드 실행

➜  docker-compose -f mongo-services.yaml up -d

 ✔ Network docker-compose-study_default            Created                                                                                                     0.1s 
 ✔ Container docker-compose-study-mongo-express-1  Created                                                                                                     0.5s 
 ✔ Container docker-compose-study-mongodb-1        Created

 

network 자동 생성 확인

➜  docker network ls                       
NETWORK ID     NAME                           DRIVER    SCOPE
deea089822c8   docker-compose-study_default   bridge    local

 

 

compose로 열린 container 내리고 삭제

➜  docker-compose-study docker-compose -f mongo-services.yaml down 
[+] Running 3/3
 ✔ Container docker-compose-study-mongo-express-1  Removed                                                                                                     0.4s 
 ✔ Container docker-compose-study-mongodb-1        Removed                                                                                                     0.3s 
 ✔ Network docker-compose-study_default            Removed

 

 

docker-compose down을 하면, running container가 stop 되고 삭제된다. 삭제되면, container 안의 있던 데이터가 삭제된다. 삭제되지 않게 하기 위해서는 stop만 할 수 있는 명령어를 사용한다. 삭제되더라도 데이터 살리고 싶으면 volume을 사용하면 된다.

 

stop 명령어 실습

➜  docker-compose-study docker-compose -f mongo-services.yaml stop 
[+] Stopping 2/2
 ✔ Container docker-compose-study-mongo-express-1  Stopped                                                                                                     0.3s 
 ✔ Container docker-compose-study-mongodb-1        Stopped

 

 

start 명령어 실습

➜  docker-compose-study docker-compose -f mongo-services.yaml start
[+] Running 2/2
 ✔ Container docker-compose-study-mongodb-1        Started                                                                                                     0.2s 
 ✔ Container docker-compose-study-mongo-express-1  Started

 

 

yaml 파일에 credential 정보 숨기기

- 환경 변수로 하기 (여전히 보안 이슈가 있음)

- secrets 활용하기

services:
	myapp:
		image: myapp:latest
		secrets:
		  - my_secret
secrets:
	my_secret:
		file: ./my_secret.txt

'IT' 카테고리의 다른 글

[docker] 동작원리  (0) 2024.06.10
[docker] volume  (0) 2024.06.04
[docker] 이미지 받고 실행하기 / 빌드 후 실행하기  (1) 2024.06.03
[linux] lsof command  (0) 2024.06.03
[tcp] connection 개론  (1) 2024.05.10