SW/리눅스

Debian 9 : Docker Compose 설치, 사용 방법, 예제, 명령어

얇은생각 2021. 3. 16. 07:30
반응형

Docker Composite는 다중 컨테이너 Docker 응용 프로그램을 정의하고 조정할 수 있는 도구입니다. YAML 파일을 사용하여 응용 프로그램의 컨테이너, 네트워크 및 볼륨을 구성합니다.

작곡은 다양한 용도로 사용될 수 있습니다. 단일 호스트 애플리케이션 배포, 자동화된 테스트 및 로컬 개발은 Docker Composite의 가장 인기 있는 사용 사례입니다.

이 튜토리얼에서는 Debian 9에 최신 버전의 Docker Composite를 설치하는 과정을 안내합니다. 또한 기본 Docker Composer 개념 및 명령도 살펴보겠습니다.

 

 

Debian 9 : Docker Compose 설치, 사용 방법, 예제, 명령어

 

 

전제조건

이 자습서를 계속하기 전에 다음 필수 구성 요소를 충족했는지 확인하십시오. 

- sudo 권한을 가진 사용자로 로그인

- Debian 9 컴퓨터에 Docker를 설치

 

 

 

Debian에 Docker Composer 설치

Docker Composer 설치 패키지는 공식 Debian 9 저장소에서 사용할 수 있지만 항상 최신 버전은 아닐 수 있습니다. 권장되는 방법은 Docker의 GitHub 저장소에서 Docker Composite를 설치하는 것입니다.

이 기사를 작성할 때 최신의 안정적인 Docker Composite 버전은 버전 1.23.1입니다. Composing binary를 다운로드하기 전에 GitHub의 Composing repository 릴리스 페이지를 방문하여 다운로드할 수 있는 새 버전이 있는지 확인하십시오. 

Debian 9에 최신 버전의 Docker Composite를 설치하려면 다음 단계를 수행하십시오.

먼저 다음 curl 명령을 사용하여 Docker Composite 바이너리를 /usr/local/bin 디렉토리에 다운로드합니다.

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

 

 

다운로드가 완료되면 Composite 이진 파일에 대한 실행 권한을 부여합니다.

sudo chmod +x /usr/local/bin/docker-compose

 

 

다음을 입력하여 설치를 확인합니다.

docker-compose --version

# docker-compose version 1.23.1, build b02f1306

 

 

 

Docker Composite 시작

이 섹션에서는 Docker Composite를 사용하여 Debian 9 컴퓨터의 WordPress 스택을 관리하는 방법에 대해 설명합니다.

 먼저 프로젝트의 디렉터리를 만들고 이 디렉터리로 변경하십시오.

mkdir wordpress_app
cd wordpress_app

 

 

텍스트 편집기를 열고 프로젝트 디렉토리 내에 docker-compose.yml 파일을 작성합니다.

다음 내용을 붙여넣습니다.

# docker-compose.yml

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:

 

 

그러면 위의 코드는 무엇을 하는 걸까요?

첫 번째 줄에서는 Composite 파일 버전을 지정합니다. 특정 도커 릴리스를 지원하는 Composite 파일 형식에는 여러 가지 버전이 있습니다. 

다음으로, 우리는 db와 워드프레스라는 두 가지 서비스를 정의합니다. 각 서비스는 이미지 하나를 실행하고 도커 합성 실행 시 별도의 컨테이너를 만듭니다.

 

db 서비스 : 

mysql:5.7 이미지를 사용합니다. 이미지가 시스템에 없는 경우 Composite가 Docker Hub 공용 리포지토리에서 이미지를 가져옵니다.

컨테이너가 항상 다시 시작하도록 지시하는 항상 다시 시작 정책을 사용합니다.

데이터베이스를 유지할 명명된 볼륨 db_data를 생성합니다.

mysql:5.7 이미지에 대한 환경 변수를 정의합니다.

 

wordpress service :  

wordpress 이미지를 사용합니다. 이미지가 시스템에 없는 경우 Composite가 Docker Hub 공용 리포지토리에서 이미지를 가져옵니다.

컨테이너가 항상 다시 시작하도록 지시하는 항상 다시 시작 정책을 사용합니다.

호스트의 wp_data 디렉토리를 컨테이너 내부의 /var/lib/mysql에 마운트합니다.

컨테이너의 노출 포트 80을 호스트 시스템의 포트 8080으로 전달합니다.

워드프레스 이미지의 환경 변수를 정의합니다.

datast_on 명령은 두 서비스 간의 종속성을 정의합니다. 이 예에서는 워드프레스 전에 db가 시작됩니다.

 

프로젝트 디렉터리에서 다음 명령을 실행하여 WordPress 응용 프로그램을 시작합니다. 

docker-compose up

# ...
# 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'

 

 

Composite(합성)는 두 개의 이미지를 모두 끌어오고, 두 개의 컨테이너를 시작하고, 프로젝트 디렉터리에 wp_data 디렉토리를 생성합니다.

브라우저에 http://0.0.0:8080/을 입력하면 Wordpress 설치 화면이 표시됩니다.

이 때 WordPress 응용 프로그램이 실행되고 있으며 테마 또는 플러그인에 대한 작업을 시작할 수 있습니다. 

작성을 중지하려면 Ctrl+C를 누릅니다.

-d 플래그를 전달하여 Composite(구성)를 분리 모드로 시작할 수도 있습니다. 

docker-compose up -d

 

 

실행 중인 서비스를 확인하려면 ps 옵션을 사용합니다.

docker-compose ps

#        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:

 

 

서비스를 중지하기 위해 Composite가 분리된 모드에서 실행 중인 경우 다음을 사용합니다.

docker-compose stop

 

 

컨테이너를 완전히 제거하려면 다음 옵션을 사용하십시오.

docker-compose down

 

 

--volumes 스위치를 통과하면 데이터 볼륨도 제거됩니다.

docker-compose down --volumes

 

 

 

Docker Composite 제거

Docker Composite를 제거해야 하는 경우 다음을 입력하여 이진 파일을 제거할 수 있습니다.

sudo rm /usr/local/bin/docker-compose

 

반응형