본문 바로가기

ChatGPT/Docker

[Docker][Compose] 도커 명령어 모음

반응형

도커 컴포즈란?

도커 컴포즈는 여러 개의 도커 컨테이너를 정의하고 실행하기 위한 도구입니다.

도커 컴포즈를 사용하면 YAML 파일로 컨테이너, 네트워크, 볼륨 등의 설정 정보를 작성할 수 있습니다.
이렇게 작성된 설정 파일을 바탕으로 도커 컴포즈가 컨테이너를 실행하고 관리합니다.

도커 컴포즈를 사용하면 여러 개의 컨테이너를 쉽게 실행하고 관리할 수 있습니다.
컨테이너 간의 의존성도 설정 파일에서 정의할 수 있어서 컨테이너 간의 연동 문제도 해결할 수 있습니다.

도커 컴포즈를 사용하면 개발 환경에서 컨테이너를 쉽게 구성하고 관리할 수 있으며,
컨테이너화된 애플리케이션의 배포와 관리도 쉽게 할 수 있습니다.

도커 컴포즈 파일 작성

도커 컴포즈에서는 YAML 파일을 사용하여 컨테이너, 네트워크, 볼륨 등의 설정 정보를 작성합니다.

도커 컴포즈 파일의 이름은 docker-compose.yml이어야 합니다.
도커 컴포즈 파일은 프로젝트 루트 디렉토리에 위치해야 합니다.

도커 컴포즈 파일의 기본 구성 요소는 다음과 같습니다.

version: '3.9'

services:
  [컨테이너 이름]:
    image: [이미지 이름]
    [추가적인 설정]

networks:
  [네트워크 이름]:
    [추가적인 설정]

volumes:
  [볼륨 이름]:
    [추가적인 설정]
  • version: 도커 컴포즈 파일 버전
  • services: 실행할 컨테이너 정보
  • networks: 사용할 네트워크 정보
  • volumes: 사용할 볼륨 정보

services, networks, volumes 등의 설정 항목은 필요에 따라서 추가하거나 제거할 수 있습니다.

도커 컴포즈 파일 작성을 위한 더 자세한 내용은 도커 공식 문서를 참고하세요.

다음은 docker-compose.yml 파일을 사용하여 nginxmysql 컨테이너를 실행하는 예시입니다.

version: '3'

services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: password

위 예시에서는 version을 3으로 설정하고, services에 web과 db라는 두 개의 컨테이너를 정의합니다.

web 컨테이너는 nginx 이미지를 사용하며 호스트의 80 포트와 컨테이너의 80 포트를 매핑하고, 호스트의 ./nginx.conf 파일과 컨테이너의 /etc/nginx/nginx.conf 파일을 연결합니다.

db 컨테이너는 mysql 이미지를 사용하며, 환경 변수로 MYSQL_ROOT_PASSWORD를 설정합니다.

도커 컴포즈 실행

도커 컴포즈 실행은 docker-compose up 명령어를 사용합니다.

이 명령어를 실행하면 docker-compose.yml 파일에 정의된 서비스를 실행합니다.

컨테이너가 이미 실행 중인 경우에는 새로운 컨테이너가 실행되지 않습니다.
새로운 컨테이너를 실행하려면 --force-recreate 옵션을 사용합니다.

도커 컴포즈 실행을 위한 더 자세한 내용은 도커 공식 문서를 참고하세요.

도커 컴포즈 중지

도커 컴포즈 실행을 중지하려면 docker-compose down 명령어를 사용합니다.

이 명령어를 실행하면 docker-compose.yml 파일에 정의된 서비스를 중지합니다.
컨테이너, 네트워크, 볼륨 등도 함께 삭제됩니다.

중지하기 전에 실행한 컨테이너를 모두 삭제하려면 -v 옵션을 사용합니다.

도커 컴포즈 중지를 위한 더 자세한 내용은 도커 공식 문서를 참고하세요.

도커 컴포즈 로그 확인

도커 컴포즈 실행 중인 서비스의 로그를 확인하려면 docker-compose logs 명령어를 사용합니다.

이 명령어를 실행하면 실행 중인 모든 컨테이너의 로그를 확인할 수 있습니다.
특정 서비스의 로그만 확인하려면 docker-compose logs [서비스 이름] 명령어를 사용합니다.

로그 확인 시 -f 옵션을 추가하면 실시간으로 로그를 확인할 수 있습니다.

도커 컴포즈 로그 확인을 위한 더 자세한 내용은 도커 공식 문서를 참고하세요.

도커 컴포즈 컨테이너 제거

도커 컴포즈 실행 중인 서비스의 컨테이너를 제거하려면 docker-compose rm 명령어를 사용합니다.

이 명령어를 실행하면 실행 중인 모든 컨테이너를 삭제합니다.
삭제할 서비스를 지정하려면 docker-compose rm [서비스 이름] 명령어를 사용합니다.

-f 옵션을 추가하면 컨테이너를 강제로 종료한 뒤 제거합니다.

도커 컴포즈 컨테이너 제거를 위한 더 자세한 내용은 도커 공식 문서를 참고하세요.

도커 컴포즈 네트워크 제거

도커 컴포즈 실행 중인 서비스의 네트워크를 제거하려면 docker-compose down 명령어를 사용합니다.

이 명령어를 실행하면 컨테이너, 네트워크, 볼륨 등을 모두 삭제합니다.
삭제 후에는 docker network ls 명령어를 사용하여 네트워크 목록에서 해당 네트워크가 제거되었는지 확인할 수 있습니다.

 

도커 컴포즈 네트워크 제거를 위한 더 자세한 내용은 도커 공식 문서를 참고하세요.

도커 컴포즈 볼륨 제거

도커 컴포즈 실행 중인 서비스의 볼륨을 제거하려면 docker-compose down -v 명령어를 사용합니다.

이 명령어를 실행하면 컨테이너, 네트워크, 볼륨 등을 모두 삭제합니다.
삭제 후에는 docker volume ls 명령어를 사용하여 볼륨 목록에서 해당 볼륨이 제거되었는지 확인할 수 있습니다.

도커 컴포즈 볼륨 제거를 위한 더 자세한 내용은 도커 공식 문서를 참고하세요.

 

이글은 ChatGPT의 도움을 받아 작성되었습니다.

반응형