cd ~
mkdir docker-compose
cd docker-compose
vi docker-compose.yaml #이름은 docker-compose.yaml 또는 docker-compose.yam으로 만들어야한다.
version: '3'
services:
wpdb:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: dkagh1.
MYSQL_DATABASE: wordpress
MYSQL_USER: wpadm
MYSQL_PASSWORD: dkagh1.
deploy:
resources:
limits:
cpus: '0.50'
memory: 1000M
volumes:
- web-db:/var/lib/mysql
networks:
- wp-net
wpweb:
depends_on:
- wpdb
image: wordpress:5-apache
restart: always
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: wpdb
WORDPRESS_DB_USER: wpadm
WORDPRESS_DB_PASSWORD: dkagh1.
WORDPRESS_DB_NAME: wordpress
deploy:
resources:
limits:
cpus: '0.50'
memory: 500M
volumes:
- web-contents:/var/www/html
networks:
- wp-net
volumes:
web-contents:
web-db:
networks:
wp-net:
단어 | 뜻 |
---|---|
wpdb: | 해당 이미지의 이름으로 나중에 host주소로 바로 연결된다. 하나의 docker-compose 실행 안에서는 기본적으로 네트워크를 공유하고 있기 때문에 이름으로 주소연결이 가능하다. |
restart: always | 만약에 wpdb가 꺼지더라도 자동으로 재시작하는 옵션 |
environment: | 이미지 설치시 필요한 환경변수들을 설정할 수 있다. |
cpus: '0.50' | cpu사용을 제한하는 옵션 |
memory: 1000M | 메모리 사용을 제한하는 옵션 |
volumes: | 볼륨을 절대경로로 지정해서 영구적으로 사용하게 한다. |
networks: | 네트워크를 내가 관리하기 편하게 지정해 줄 수 있고 설정하지 않더라도 같은 compose실행 안에서는 네트워크 공유가 기본값으로 되어있다. |
depends_on: | 명시적 의존을 통해 db가 먼저 설치되고 나면 web서버 이미지가 실행된다. |
ports: | 80포트를 열어준다는 의미이다. |
docker compose up -d
docker ps -a
docker compose down -v
### -v 옵션은 docker compose 종료시에 관련된 볼륨도 같이 삭제시켜주는 옵션이다.
### docker compose down하면 컨테이너들도 모두 삭제된다.