docker compose 실행하기
Docker Compose는 기본적으로 커맨드가 실행하는 디렉토리에 있는 docker-compose.yml
또는 docker-compose.yaml
를 설정 파일로 사용합니다.
docker-compose -f
설정파일
![](https://blog.kakaocdn.net/dn/dFxmZl/btslbQbPhdX/wzxIVBCmfr4CB1rVvDVLAk/img.png)
만약 실행 경로에 docker-compose.yml
이 아닌 다른 이름이나 경로의 파일을 Docker Compose 설정 파일
로 사용하고 싶다면 -f
옵션으로 명시를 해줍니다. (예시 : docker-compose -f mongo.yaml up
)
-f
옵션은 여러 개의 설정 파일을 사용할 때도 사용할 수 있습니다. 이 때는 나중에 오는 설정이 앞에 오는 설정보다 우선하게 됩니다. (예시 : docker-compose -f mongo.yaml -f docketest.yaml up
)
docker-compose -d up
docker-compose -d up
이렇게 많이 사용합니다.
이 명령의 의미는 모든 서비스 컨테이너를 한번에 생성하고 실행하며 -d 옵션을 이용해서 background에서 컨테이너를 띄웁니다.
-d 옵션
: detatch
한다는 의미로, 이것을 해주지 않으면 터미널을 사용하지 못하고 계속해서 로그가 나오게 됩니다. 터미널을 사용하기 위해서 ctrl +c
를 해주는 순간 컨테이너가 종료 되어버리기 때문에 이 옵션은 상당히 자주 사용됩니다.
docker-compose stop
돌아기고 있는 특정 서비스 컨테이너를 정지시키기 위해서 사용합니다.
docker-compose start
docker-compose start
커맨드는 내려가 있는 있는 특정 서비스 컨테이너를 올리기 위해서 사용합니다.
이 명령은 docker-compose stop
명령에 의해 삭제되지는 않았지만 stop 상태에 있는 컨테이너를 구동시키는 역활을 합니다.
stop
하고 start
하는 경우(restart) 이전에 컨테이너에 데이터를 저장했다면 그것은 저장되지 않습니다! 이것은 컨테이너가 지속성이 없다는 것은 아주 중요한 개념입니다.그래서 컨테이너를 재시작할 때 지속성을 가질 수 있도록 하기 위해서 볼륨
이라는 개념이 등장합니다.
docker-compose down
docker-compose up
커맨드에 반대되는 명령이라고 볼 수가 있습니다.
Docker Compose
에 정의되어 있는 모든 서비스 컨테이너를 한 번에 정지시키고 동시에 삭제까지 진행합니다. 이때 docker compose
를 하면 생성됐던 default network
도 삭제가 됩니다.
docker-compose ps
docker-compose ps
커맨드는 Docker Compose
에 정의되어 있는 모든 서비스 컨테이너 목록을 조회할 때 사용합니다.
docker-compose logs
docker-compose logs
커맨드는 서비스 컨테이너의 로그를 확인하고 싶을 때 사용하며, 보통 -f
옵션을 붙여서 실시간 로그를 확인합니다.
사용예시 : docker-compose logs -f 컨테이너 이름
docker-compose exec
docker-compose exec
커맨드는 실행 중인 서비스 컨테이너에게 명령을 실행하고 싶을 때 사용합니다.
사용예시 : docker-compose exec db psql postgres postgres
docker-compose run
docker-compose run
커맨드는 서비스 컨테이너의 특정 명령어를 일회성으로 실행할 때 사용합니다.
docker-compose run 컨테이너이름 원하는명령
: 이렇게 하면 컨테이너에서 원하는 명령을 실행한번 해줍니다.
사용 예시 : docker-compose run web env
docker-compose config
docker-compose config
커맨드는 Docker Compose 설정을 확인할 때 사용합니다.
-f
옵션으로 여러 개의 설정 파일을 사용할 때, 최종적으로 어떻게 설정이 적용되는지 확인해볼 때 유용합니다.
즉 도커 컴포즈 파일의 내용을 출력해주는 명령입니다.
Uploaded by N2T
'42Seoul > Inception' 카테고리의 다른 글
Dockerfiles이란? [42 inception 과제 개념 9] (0) | 2023.06.24 |
---|---|
docker compose를 사용한 네트워크 [42 inception 과제 개념 8] (0) | 2023.06.24 |
docker-compose 란 무엇인가? [42 inception 과제 개념 6] (0) | 2023.06.24 |
도커 네트워크란 [42 inception 과제 개념 5] (0) | 2023.06.24 |
Docker 명령어, 포트번호, 컨테이너 디버깅 [42 inception 과제 개념 4] (0) | 2023.06.24 |