Docker Compose를 Debian 9에 설치하고 사용하는 방법

Docker Compose를 Debian 9에 설치하고 사용하는 방법

2022-06-01 last update

12 minutes reading docker debian
Docker Compose
다중 컨테이너 Docker 응용 프로그램을 정의하고 구성할 수 있는 도구입니다.YAML 파일을 사용하여 응용 프로그램의 컨테이너, 네트워크 및 볼륨을 구성합니다.Compose는 다양한 용도로 사용할 수 있습니다.단일 호스트 응용 프로그램 배치, 자동 테스트 및 로컬 개발은 Docker Compose에서 가장 자주 사용하는 용례입니다.이 강좌에서는 Debian 9에 최신 버전의 Docker Compose를 설치하는 과정을 설명합니다.Docker Compose의 기본 개념과 명령도 살펴보겠습니다.

선결 조건

본 강좌를 계속하기 전에
  • user with sudo privileges로 로그인해야 합니다.
    .
  • 있음Docker installed on your Debian 9
    기계.
  • Debian에 Docker Compose 설치

    Docker Compose 설치 패키지는 공식 Debian 9 저장소에서 제공되지만 항상 최신 버전은 아닐 수 있습니다.권장되는 방법은 Docker의 GitHub 저장소에서 Docker Compose를 설치하는 것입니다.이 문서를 작성할 때 Docker Compose의 최신 안정 버전은 version1.23.1이다.바이너리 작성을 다운로드하기 전에 Compose repository release page on GitHub
    다운로드할 수 있는 새 버전이 있는지 확인합니다.다음 절차를 수행하여 Debian 9에 최신 버전의 Docker Compose를 설치합니다.
  • 먼저 다음 명령 /usr/local/bin 을 사용하여 Docker Compose 바이너리 파일을 curl 디렉토리에 다운로드합니다.
    명령:
    sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • 다운로드 완료 후 제공executable permissions
    Compose 바이너리 파일에 대해:
    sudo chmod +x /usr/local/bin/docker-compose
  • 입력을 통해 설치를 검증합니다.
    docker-compose --version
    출력은 다음과 같습니다.
  • Docker Compose 시작

    이 절에서 Docker Compose를 사용하여 Debian 9 기기에서 WordPress 스택을 관리하는 방법을 보여 드리겠습니다.먼저 프로젝트 및 changing into it 디렉터리를 만듭니다.
    :
    docker-compose version 1.23.1, build b02f1306
    텍스트 편집기를 열고 create a filedocker-compose.yml라는 프로젝트 디렉터리에서:
    mkdir wordpress_appcd wordpress_app
    다음 내용을 붙여넣습니다: docker compose.yml
    nano docker-compose.yml
    그러면 위의 코드는 무엇을 합니까?첫 번째 줄에서 우리는 지정했다 Compose file version
    . 특정 Docker 버전을 지원하는 여러 가지 버전의 Compose 파일 형식이 있습니다.다음은 두 가지 서비스dbwordpress를 정의합니다.모든 서비스는 dockercompose가 실행될 때 단독 용기를 만드는 이미지를 실행합니다.db 서비스:
  • 사용 mysql:5.7
    형상이미지가 시스템에 없으면 Compose는 Docker Hub 공용 저장소에서 이미지를 추출합니다.
  • 재부팅always 정책을 사용하면 컨테이너가 항상 재부팅됨을 나타냅니다.
  • 은 데이터베이스를 지속시키기 위해 명명권db_data을 만듭니다.
  • 이미지의 환경 변수를 정의합니다.
  • mysql:5.7서비스:
  • 사용 wordpress
    형상이미지가 시스템에 없으면 Compose는 Docker Hub 공용 저장소에서 이미지를 추출합니다.
  • 재부팅wordpress 정책을 사용하면 컨테이너가 항상 재부팅됨을 나타냅니다.
  • 호스트의 always 디렉토리를 컨테이너에 마운트합니다wp_data.
  • 컨테이너의 노출 포트 80을 호스트의 포트 8080으로 전달합니다.
  • 정의environment variables/var/lib/mysql 이미지의 경우
  • wordpress 명령은 두 서비스 간의 의존 관계를 정의했다.이 예에서 depends_ondb 이전에 시작됩니다.
  • 프로젝트 디렉터리에서 다음 명령을 실행하여 WordPress 응용 프로그램을 시작합니다.
    version: '3.3'
    
    services:
      db:
        image: mysql:5.7
        restart: always
        volumes:
          - db_data:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: password
          MYSQL_DATABASE: wordpress
    
      wordpress:
        image: wordpress
        restart: always
        volumes:
          - ./wp_data:/var/www/html
        ports:
          - "8080:80"
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_NAME: wordpress
          WORDPRESS_DB_USER: root
          WORDPRESS_DB_PASSWORD: password
        depends_on:
           - db
    
    volumes:
        db_data:
        wp_data:
    
    출력은 다음과 같습니다.
    docker-compose up
    Compose는 두 개의 이미지를 가져와 두 용기를 시작하고 프로젝트 디렉터리에 wordpress 디렉터리를 만듭니다.(adsbygoogle=window.adsbygoogle | |[]).푸시({});브라우저에 wp_data 를 입력하면 Wordpress 설치 화면이 표시됩니다.워드프레스 프로그램이 시작되고 실행되었습니다. 테마나 플러그인을 처리할 수 있습니다.작성을 중지하려면 http://0.0.0.0:8080/ 을 누릅니다.전달CTRL+C 로고를 통해 분리 모드에서 작성을 시작할 수 있습니다.
    ...
    wordpress_1_70f2f980e1fb | [Mon Nov 19 18:00:31.002748 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.12 configured -- resuming normal operations
    wordpress_1_70f2f980e1fb | [Mon Nov 19 18:00:31.002912 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
    
    실행 중인 서비스를 확인하려면 -d 옵션을 사용하십시오.
    docker-compose up -d
    docker-compose ps
    Compose가 분리 모드에서 실행될 때 서비스 사용을 중지합니다.
           Name                     Command               State          Ports        
    ----------------------------------------------------------------------------------
    wordpress_app_db_1          docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp 
    wordpress_app_wordpress_1   docker-entrypoint.sh apach ...   Up      0.0.0.0:8080->80/tcp
    
    용기를 완전히 삭제하려면 ps 옵션을 사용하십시오.
    docker-compose stop
    스위치를 통해 데이터 볼륨도 삭제합니다.
    docker-compose down

    Docker Compose 제거

    Docker Compose를 마운트 해제하려면remove
    입력:
    docker-compose down --volumes

    결론

    Debian 9에 Docker Compose를 설치하고 사용하는 방법을 배웠습니다.만약 문제가 있으면 아래에 메시지를 남겨 주십시오.