1) 컴포즈 파일 작성하는 법
1) 도커 컴포즈 파일 정의
도커 컴포즈는 정의 파일(컴포즈 파일)을 그대로 실행하는 역할을 하므로 컴포즈 파일이 반드시 필요하다.
이전에 사용하였던 docker run 명령어를 스크립트로 작성해둔 것이라고 이해하면 된다.
2) 컴포즈 파일을 작성하는 방법
컴포즈 파일은 맨 앞에 버전을 기재하고, 그 뒤로 services와 network, volumes을 차례로 기재한다.
정의 파일은 YAML 형식을 따르며 파일의 확장자는 .yml, 파일 이름은 docker-compose.yml으로 지정해준다.
-f 옵션을 이용하여 사용자 파일 이름을 별도로 작성하면 다른 이름을 사용할 수 있지만 기본값은 docker-compose.yml이다.
3) 컴포즈 파일(YAML 형식) 작성 요령
- 첫 줄에 도커 컴포즈 버전을 작성
- 주 항목 services, networks, volumes 아래에 설정 내용을 기재
- 항목 간의 상하 관계는 공백을 사용한 들여쓰기로 나타낸다
- 들어쓰기는 같은 수의 배수만큼의 공백을 사용한다
- 이름은 주 항목 아래에 들여쓰기 한 다음 기재한다
- 컨테이너 설정 내용은 이름 아래에 들여쓰기한 다음 기재한다
- 여러 항목을 기재하려면 줄 앞에 '-'를 붙인다
- 이름 뒤에는 콜론(:)을 붙인다
- 콜론 뒤에는 반드시 공백이 와야 한다(줄바꿈하는 경우는 예외)
- # 뒤의 내용은 주석으로 간주한다
- 문자열은 작은따옴표(') 또는 큰따옴표(")로 감싸 작성한다
2) 컴포즈 파일 작성하기
1) docker-compose.yml 파일 작성
아래와 같이 컴포즈 파일을 작성한다.
version: '3'
services:
mysql-db:
image: mysql:5.7
container_name: mysql-db
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: myuser
MYSQL_PASSWORD: wordpress
networks:
- my_network
ports:
- "3306:3306"
volumes:
- /my/custom/config/my.cnf:/etc/mysql/conf.d/my.cnf
restart: always
wordpress:
image: wordpress:latest
container_name: wordpress
environment:
WORDPRESS_DB_HOST: mysql-db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: myuser
WORDPRESS_DB_PASSWORD: wordpress
networks:
- my_network
ports:
- "8080:80"
restart: always
networks:
my_network:
driver: bridge
- version: Docker Compose 파일의 버전을 설정합니다. 여기서는 3을 사용하여 Docker Compose 버전 3.x의 기능을 활성화
- mysql 서비스 설명
- image: mysql:5.7 이미지를 사용하여 MySQL 서버의 버전을 5.7로 설정합니다.
- container_name: 생성되는 컨테이너의 이름을 mysql-db로 지정합니다.
- environment: MySQL 데이터베이스 설정을 위한 환경 변수를 설정합니다.
- MYSQL_ROOT_PASSWORD: MySQL의 루트(root) 사용자 비밀번호를 wordpress로 설정합니다.
- MYSQL_DATABASE: 컨테이너가 시작될 때 자동으로 생성할 데이터베이스 이름을 wordpress로 지정합니다.
- MYSQL_USER: 데이터베이스의 일반 사용자 이름을 myuser로 설정합니다.
- MYSQL_PASSWORD: myuser 계정의 비밀번호를 wordpress로 설정합니다.
- networks: my_network라는 사용자 정의 네트워크에 연결하여 다른 서비스와의 통신을 가능하게 합니다.
- ports: 호스트의 3306 포트를 컨테이너의 3306 포트와 연결하여 외부에서 MySQL 서버에 접근할 수 있게 설정합니다.
- volumes: 호스트의 MySQL 설정 파일 경로(/my/custom/config/my.cnf)를 컨테이너 내 /etc/mysql/conf.d/my.cnf에 연결하여 MySQL 설정을 커스터마이징할 수 있게 합니다.
- restart: always로 설정해 컨테이너가 예기치 않게 중단되었을 때 자동으로 재시작되도록 합니다.
- wordpress 서비스 설명
- image: wordpress:latest 이미지를 사용하여 최신 버전의 WordPress 애플리케이션을 실행합니다.
- container_name: 생성되는 컨테이너의 이름을 wordpress로 지정합니다.
- environment: WordPress가 MySQL 데이터베이스에 접근할 수 있도록 환경 변수를 설정합니다.
- WORDPRESS_DB_HOST: MySQL 호스트 정보로 mysql-db:3306을 설정하여 mysql-db 서비스와 연결합니다.
- WORDPRESS_DB_NAME: WordPress에서 사용할 데이터베이스 이름을 wordpress로 지정합니다.
- WORDPRESS_DB_USER: MySQL 데이터베이스 사용자 이름을 myuser로 설정합니다.
- WORDPRESS_DB_PASSWORD: myuser 사용자의 비밀번호를 wordpress로 설정합니다.
- networks: my_network 네트워크에 연결하여 mysql-db와 통신할 수 있게 합니다.
- ports: 호스트의 8080 포트를 컨테이너의 80 포트와 연결하여 브라우저에서 http://localhost:8080으로 WordPress 애플리케이션에 접근할 수 있습니다.
- restart: always로 설정해 컨테이너가 중단되었을 때 자동으로 재시작됩니다.
3) 도커 컴포즈 실행
1) 도커 컴포즈 커맨드를 사용하여 실행한다.
docker compose up -d
2) 컨테이너 상태 확인
docker ps -a
생성한 컨테이너의 상태가 정상적인지 확인한다.
3) 워드프레스 접속 확인
퍼블릭 ip :8080
퍼블릭 ip :8080으로 접속하여 워드프레스 접속을 확인한다.
'도커&쿠버네티스' 카테고리의 다른 글
로키 리눅스 기반 쿠버네티스 설치 (0) | 2024.12.06 |
---|---|
쿠버네티스 개념 및 용어 정리 (0) | 2024.11.21 |
로키 리눅스 기반 도커를 이용한 Nginx Reverse Proxy 서버 구축하기 (0) | 2024.10.17 |
로키 리눅스 기반 도커 이미지 만들기 (0) | 2024.10.14 |
로키 리눅스 기반 볼륨 마운트 개념 및 실습 (0) | 2024.10.13 |