Docker Composite는 다중 컨테이너 Docker 응용프로그램을 정의하고 실행할 수 있는 도구입니다.
Composite(합성)를 사용하면 단일 YAML 파일에 응용프로그램의 서비스, 네트워크 및 볼륨을 정의한 다음 단일 명령으로 응용프로그램을 회전할 수 있습니다.
컴파일은 단일 호스트 애플리케이션 배포, 자동 테스트, 로컬 개발 등 다양한 용도로 사용할 수 있습니다.
이 튜토리얼에서는 CentOS 7에 Docker Composite의 최신 버전을 설치하는 방법에 대해 설명합니다. 기본 Docker Composite 개념 및 명령도 설명합니다.
필수 조건
이 튜토리얼을 계속하기 전에 다음 필수 구성 요소를 충족했는지 확인하십시오.
- sudo 권한을 가진 사용자로 로그인했습니다.
- CentOS 7에 도커를 설치합니다.
CentOS로 도커 컴포지션 설치
Docker Composite on Cent 설치 시 권장되는 방법입니다.OS 7은 Docker의 GitHub 저장소에서 Composite 바이너리를 다운로드합니다.
이 문서를 작성할 때 Docker Composite의 최신 안정 버전은 1.23.1 버전입니다. Composite 바이너리를 다운로드하기 전에 GitHub의 Compository 릴리스 페이지를 방문하여 다운로드할 수 있는 새 버전이 있는지 확인하십시오.
다음 단계를 완료하여 Docker Composite on CentOS 7를 설치하십시오.
다음 curl 명령을 사용하여 /usr/local/bin 디렉터리에 Docker Composite 바이너리를 다운로드하는 것부터 시작합니다.
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
다운로드가 완료되면 다음을 입력하여 이진 파일을 실행합니다.
sudo chmod +x /usr/local/bin/docker-compose
설치를 확인하려면 다음 명령을 입력하여 Composite 버전을 인쇄하십시오.
docker-compose --version
# docker-compose version 1.23.1, build b02f1306
Docker Composite 시작
이 섹션에서는 Docker Composite를 사용하여 CentOS 7 시스템에서 WordPress 스택을 실행하는 방법에 대해 설명합니다.
먼저 프로젝트에 대한 새 디렉터리를 만들고 다음 디렉터리로 이동하십시오.
mkdir my_app && cd my_app
그런 다음 프로젝트 디렉터리 내에 docker-compose.yml 파일을 생성합니다.
nano 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:
그럼 코드를 한 줄씩 분석해 보겠습니다.
첫 번째 줄은 파일 작성 버전을 지정합니다. 특정 Docker 릴리스를 지원하는 Composite 파일 형식에는 여러 버전이 있습니다.
다음으로, db와 워드프레스의 두 가지 서비스를 정의합니다. 각 서비스는 하나의 이미지를 실행하고 도커 합성이 실행될 때 별도의 컨테이너를 만듭니다.
db 서비스는 다음과 같습니다.
mysql:5.7 이미지를 사용합니다. 시스템에 이미지가 없는 경우 Composite(합성)는 Docker Hub 공용 저장소에서 이미지를 꺼냅니다.
컨테이너를 항상 재시작하도록 지시하는 재시작 항상 정책을 사용합니다.
데이터베이스가 지속되도록 명명된 볼륨 db_data를 생성합니다.
mysql 이미지의 환경 변수를 정의합니다.
워드프레스 서비스는 다음과 같습니다.
프레스 이미지라는 단어를 사용합니다. 시스템에 이미지가 없는 경우 Composite(합성)는 Docker Hub 공용 저장소에서 이미지를 꺼냅니다.
컨테이너를 항상 재시작하도록 지시하는 재시작 항상 정책을 사용합니다.
호스트의 wp_data 디렉토리를 컨테이너 내부의 /var/lib/mysql에 마운트합니다.
컨테이너의 노출된 포트 80을 호스트 시스템의 포트 8080으로 전달합니다.
워드프레스 이미지의 환경 변수를 정의합니다.
depends_on 명령은 두 서비스 간의 종속성을 정의합니다. 이 예에서는 워드프레스 전에 db가 시작됩니다.
프로젝트 디렉터리에서 다음 명령을 사용하여 WordPress 응용 프로그램을 회전합니다.
docker-compose up
출력은 다음과 같아야 합니다.
...
wordpress_1 | [Sat Oct 13 21:30:48.286382 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations
wordpress_1 | [Sat Oct 13 21:30:48.286425 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
Composite(합성)는 두 이미지를 모두 끌어다 놓고 두 개의 컨테이너를 시작하고 프로젝트 디렉토리에 wp_data 디렉토리를 생성합니다.
브라우저를 열고 http://0.0.0.0:8080/ 을 입력하면 워드프레스 설치 화면이 나타납니다.
이때 WordPress 응용 프로그램이 실행되고 있으며 테마 또는 플러그인 작업을 시작할 수 있습니다.
Composing(합성)을 중지하려면 Ctrl+C를 누릅니다. 환경 변수를 분리 모드로 Composing(합성)을 시작하려면 -d 플래그를 사용합니다.
docker-compose up -d
실행 중인 서비스를 확인하려면 ps 옵션을 사용합니다.
docker-compose ps
# 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->8
서비스를 중지하기 위해 Composite가 분리 모드에서 실행 중인 경우 다음을 사용합니다.
docker-compose stop
컨테이너를 완전히 제거하려면 Down(다운)을 사용합니다.
docker-compose down
--volumes 스위치를 전달하면 데이터 볼륨도 제거됩니다.
docker-compose down --volumes
도커 컴포지트 제거
Docker Composite를 제거하려면 다음 명령을 사용하여 바이너리를 삭제하기만 하면 됩니다.
sudo rm /usr/local/bin/docker-compose
'SW > 리눅스' 카테고리의 다른 글
Ubuntu 18.04 : VSFTPD로 FTP Server 설정하는 방법, 예제, 명령어 (0) | 2021.02.10 |
---|---|
Ubuntu 18.04 : OpenVPN Server 설정하는 방법, 예제, 명령어 (2) | 2021.02.09 |
Linux : Dig 명령어 사용하는 방법, 예제, 명령어 (DNS Lookup) (0) | 2021.02.07 |
Ubuntu 18.04 : VMware Workstation Player 설치하는 방법, 예제, 명령어 (0) | 2021.02.06 |
Linux : Cat Command 사용하는 방법, 예제, 명령어 (0) | 2021.02.05 |