도커는 어디서나 가상으로 실행할 수 있는 휴대용 자급제 컨테이너로 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 컨테이너화 플랫폼입니다.
도커 작성은 다중 컨테이너 도커 응용프로그램을 정의하고 조정할 수 있는 도구입니다. 또한 YAML 파일을 사용하여 응용 프로그램의 컨테이너, 네트워크 및 볼륨을 구성합니다.
Compose은 다양한 용도로 사용할 수 있습니다. 단일 호스트 애플리케이션 배포, 자동 테스트 및 로컬 개발은 도커 컴포지트의 가장 일반적인 사용 사례입니다.
Debian 10, Buster에 최신 버전의 도커 컴포지트를 설치하는 방법에 대해 설명합니다. 또한 도커 구성 개념과 명령어에 대해서도 알아봅니다.
필수 조건
계속하기 전에 다음 필수 조건을 충족했는지 확인하십시오.
sudo 권한이 있는 사용자로 로그인했습니다.
데비안 10 기계에 도커가 설치되어 있습니다.
Debian 10에 도커 컴포지트를 설치
도커 컴포지트 설치 패키지는 공식 Debian 10 리포지토리에서 사용할 수 있지만 항상 최신 버전이 아닐 수도 있습니다. 권장되는 접근 방식은 도커의 GitHub 저장소에서 도커 컴포지션을 설치하는 것이 좋습니다.
도커 컴포지트의 최신 안정 버전은 1.23.1 버전입니다. 컴포지트 바이너리를 다운로드하기 전에 GitHub의 저장소 컴포지션 페이지를 방문하여 다운로드 가능한 새 버전이 있는지 확인하십시오.
다음 단계에 따라 Debian 10에 최신 버전의 도커 컴포지트를 설치합니다.
도커 작성 바이너리를 wget 또는 curl을 사용하여 /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
chmod를 사용하여 이진 작성 파일을 실행합니다.
sudo chmod +x /usr/local/bin/docker-compose
설치를 확인하려면 다음 명령을 사용하여 Compute 버전을 인쇄합니다.
출력은 다음과 같습니다.
docker-compose --version
# docker-compose version 1.23.1, build b02f1306
도커 Compose을 시작
이 섹션에서는 도커 컴포지트를 사용하여 로컬 WordPress 개발 환경을 설정하는 방법에 대해 설명합니다.
프로젝트의 디렉터리를 만들고 다음 디렉터리로 이동합니다.
mkdir wordpress_app && cd wordpress_app
텍스트 편집기를 열고 도커-compose.yml라는 파일을 만듭니다.
nano docker-compose.yml
다음 내용을 붙여넣습니다.
# docker-compose.yml
version: '3.7'
services:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
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:
코드 라인을 라인별로 설명하겠습니다.
첫 번째 행은 파일 작성 버전을 지정합니다. 특정 도커 릴리스를 지원하는 파일 작성 형식에는 여러 가지 버전이 있습니다.
다음으로, DB와 워드프레스라는 두 가지 서비스를 정의합니다. 도커 컴포지트가 실행될 때 각 서비스는 별도의 컨테이너를 만듭니다.
DB 서비스는 다음과 같습니다.
이미지가 mysql:8.0 이미지로 설정됩니다. 이미지가 없으면 Composate(합성)가 도커 허브 공용 리포지토리에서 이미지를 꺼냅니다. 명령으로 시작하는 줄은 기본 명령을 재정의합니다.
restart:always 정책이 컨테이너가 작동 중단될 경우 컨테이너를 재시작하도록 지정합니다.
컨테이너는 명명된 볼륨 db_data를 사용하여 데이터베이스를 유지합니다.
mysql:8.0 이미지에 대한 환경 변수를 정의합니다.
워드프레스 서비스는 다음과 같습니다.
워드프레스 이미지를 사용합니다.
호스트의 wp_data 디렉토리를 컨테이너 내부의 /var/lib/mysql에 마운트합니다.
컨테이너의 노출된 포트 80을 호스트 시스템의 포트 8080으로 포워드합니다.
워드프레스 이미지에 대한 환경 변수를 정의합니다.
depends_on 명령은 두 서비스 간의 종속성을 정의합니다. 이 예에서는 워드프레스 전에 db가 시작됩니다.
프로젝트 디렉터리에서 다음 명령을 실행하여 WordPress 스택을 시작합니다.
출력은 다음과 같아야 합니다.
docker-compose up
# ...
# ] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
# db_1_99946702ac7e | 2019-12-15T21:37:29.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
# ...
도커 컴포지트가 이미지를 가져와서 컨테이너를 시작하고 프로젝트 디렉터리에 wp_data 디렉토리를 만듭니다.
브라우저에 http://0.0.0.0:8080/을 입력하면 표준 WordPress 설치 화면이 나타납니다.
이 때 워드프레스 응용 프로그램이 실행되고 있으며 작업을 시작할 수 있습니다.
작성을 중지하려면 CTRL+C를 누릅니다.
-d 옵션을 사용하여 분리된 모드에서 작성을 시작할 수도 있습니다.
docker-compose up -d
실행 중인 도커 컨테이너를 보려면 다음 명령을 사용합니다.
docker-compose ps
# Name Command State Ports
# ------------------------------------------------------------------------------------------------------
# wordpress_app_db_1_99946702ac7e docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp
# wordpress_app_wordpress_1_a428d8408817 docker-entrypoint.sh apach ... Up 0.
Compute가 분리된 모드에서 실행 중일 때 서비스를 중지하려면 다음을 사용합니다.
docker-compose stop
컨테이너를 완전히 제거하려면 아래 옵션을 사용하십시오.
docker-compose down
--volumes 스위치를 전달하면 데이터 볼륨도 제거됩니다.
docker-compose down --volumes
도커 컴포지트를 제거
도커 컴포지션을 제거하려면 다음을 입력하여 바이너리를 제거할 수 있습니다.
sudo rm /usr/local/bin/docker-compose
Debian 10에 도커 컴포지트를 설치하려면 시스템 경로의 디렉토리에서 바이너리를 다운로드하여 실행 가능하게 하면 됩니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : Debian 10 : Jenkins 설치 방법, 예제, 명령어 (0) | 2022.05.21 |
---|---|
Linux : SSH 명령어, 예제, 사용 방법 (0) | 2022.05.20 |
Linux : CentOS : RPM Files (Packages) 설치 방법, 예제, 명령어 (0) | 2022.05.18 |
Linux : CentOS 8 : Let's Encrypt로 Nginx 보호 방법, 예제, 명령어 (0) | 2022.05.17 |
Linux : CentOS 8 : Odoo 13 설치 방법, 예제, 명령어 (0) | 2022.05.15 |