Ubuntu 18.04에서 Docker Compose 설치 및 사용 방법

Ubuntu 18.04에서 Docker Compose 설치 및 사용 방법

2022-06-01 last update

12 minutes reading ubuntu docker
Docker Compose
다중 컨테이너 Docker 응용 프로그램을 정의하고 관리할 수 있는 도구입니다.YAML 파일을 사용하여 애플리케이션의 서비스, 네트워크 및 볼륨을 구성합니다.작성은 서로 다른 목적에 사용할 수 있다.단일 호스트 응용 프로그램 배치, 자동 테스트 및 로컬 개발은 Docker Compose에서 가장 자주 사용하는 용례입니다.이 강좌에서는 Ubuntu 18.04에 최신 버전의 Docker Compose를 설치하는 방법을 보여주고 Docker Compose의 기본 개념과 명령을 탐색합니다.같은 설명은 Ubuntu 16.04와 다른 데비안 기반 버전에도 적용된다. 데비안, Linux Mint, 초급 운영체제를 포함한다.

선결 조건

본 강좌를 계속하기 전에
  • user with sudo privileges로 로그인해야 합니다.
    .
  • 의 지침에 따라 Docker 설치
    .
  • Ubuntu에 Docker Compose 설치

    Docker Compose 설치 패키지는 공식 Ubuntu 18.04 저장소에서 제공되지만 항상 최신 버전은 아닐 수 있습니다.권장되는 방법은 Docker의 GitHub 저장소에서 Docker Compose를 설치하는 것입니다.이 문서를 작성할 때 Docker Compose의 최신 안정 버전은 version1.23.1이다.바이너리 작성을 다운로드하기 전에 How To Install and Use Docker on Ubuntu 18.04
    다운로드할 수 있는 새 버전이 있는지 확인합니다.Ubuntu 18.04에 Docker Compose를 설치하려면 다음 절차를 따르십시오.
  • 다음 명령을 사용하여 Docker Compose 바이너리 파일을 /usr/local/bin 디렉터리로 다운로드 Compose repository release page on GitHub
    명령:
    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
  • 다운로드가 완료되면 실행 가능한 파일 적용 curl
    Compose 바이너리 파일의 경우:
    sudo chmod +x /usr/local/bin/docker-compose
  • 다음 명령을 실행하여 설치를 검증합니다. 이 명령은 Compose 버전을 표시합니다.
    docker-compose --version
    출력은 다음과 같습니다.
    docker-compose version 1.23.1, build b02f1306
  • Docker Compose 시작

    이 절에서 Docker Compose를 사용하여 다중 용기permissions를 설정하는 방법을 보여 드리겠습니다.
    Ubuntu 18.04에서먼저 프로젝트 디렉터리 만들기 및 WordPress application
    입력:
    mkdir my_appcd my_app
    시작 navigating
    text editordocker-compose.yml라는 프로젝트 디렉터리에서:
    nano docker-compose.yml
    다음 내용을 붙여넣습니다: docker compose.코드를 한 줄 한 줄 분석합시다.첫 번째 줄에서 우리는 지정했다 create a file
    . 특정 Docker 버전을 지원하는 여러 가지 버전의 Compose 파일 형식이 있습니다.다음은 두 가지 서비스dbwordpress를 정의합니다.모든 서비스는 dockercompose가 실행될 때 단독 용기를 만드는 이미지를 실행합니다.db 서비스:
  • 사용Compose file version
    형상이미지는 시스템에 없는 경우 Docker Hub 공용 저장소에서 추출됩니다.
  • 재부팅mysql:5.7 정책을 사용하면 컨테이너가 항상 재부팅됨을 나타냅니다.
  • 은 데이터베이스를 지속시키기 위해 명명 볼륨always을 만듭니다.
  • 정의 db_data mysql:5.7 이미지의 경우
  • wordpress서비스:
  • 사용environment variables
    형상이미지가 시스템에 없으면 Compose는 Docker Hub 공용 저장소에서 이미지를 추출합니다.
  • 재부팅wordpress 정책을 사용하면 컨테이너가 항상 재부팅됨을 나타냅니다.
  • 호스트의 always 디렉토리를 컨테이너에 마운트합니다wp_data.
  • 컨테이너의 노출 포트 80을 호스트의 포트 8080으로 전달합니다.
  • 이미지의 환경 변수를 정의합니다.
  • /var/lib/mysql 명령은 두 서비스 간의 의존 관계를 정의했다.이 예에서 wordpressdepends_on 이전에 시작됩니다.
  • 프로젝트 디렉터리에서 다음 명령을 실행하여 워드프레스 프로그램을 시작합니다.
    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:
    
    출력은 다음과 같습니다. (adsbygoogle=window.adsbygoogle | []).푸시({});
    docker-compose up
    Compose는 두 개의 이미지를 추출하여 두 개의 컨테이너를 시작하고 프로젝트 디렉터리에 db 디렉터리를 생성합니다.브라우저에 wordpress 를 입력하면 Wordpress 설치 화면이 표시됩니다.Wordpress 프로그램이 시작되고 실행되었습니다. 테마나 플러그인을 처리할 수 있습니다.작성을 중지하려면 wp_data 을 누릅니다.전달http://0.0.0.0:8080/ 로고를 통해 분리 모드에서 작성을 시작할 수 있습니다.
    ...
    wordpress_1  | [Sun Sep 23 22:31:43.499055 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations
    wordpress_1  | [Sun Sep 23 22:31:43.499796 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
    
    실행 중인 서비스를 확인하려면 Compose에서 분리 모드로 실행할 때 사용CTRL+C 옵션:
    docker-compose up -d
    서비스 사용 중지:
    docker-compose ps
    컨테이너를 완전히 삭제하려면 -d 옵션을 사용하십시오.
           Name                     Command               State          Ports        
    ----------------------------------------------------------------------------------
    my_app_db_1          docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp 
    my_app_wordpress_1   docker-entrypoint.sh apach ...   Up      0.0.0.0:8080->80/tcp
    
    스위치를 통해 데이터 볼륨도 삭제합니다.
    docker-compose stop

    Docker Compose 제거

    어떤 이유로든 Docker Compose를 제거하려면단순함 ps
    입력:
    docker-compose down

    결론

    Ubuntu 18.04에서 Docker Compose를 설치하고 사용하는 방법을 배웠습니다.Docker Compose를 사용하면 워크플로우 및 생산성이 크게 향상됩니다.Docker Compose를 사용하여 개발 환경을 정의하고 프로젝트 파트너와 공유할 수 있습니다.만약 문제가 있으면 아래에 메시지를 남겨 주십시오.