728x90
강의 기본 코드링크
docker-compose.md
GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
Docker compose

기본 shell 에서 두 컨테이너 만들어 연결하기
docker network create wordpress_net # 두 컨테이너의 네트워크 만들기
docker \
run \ # 첫번째 db mysql 컨테이너 만들기
--name "db" \
-v "$(pwd)/db_data:/var/lib/mysql" \ # 볼륨만들기.
# 현재 위치 호스트에 db_data 디렉 만들고 컨테이너 내부의 /var/lib/mysql 디렉과 연결
-e "MYSQL_ROOT_PASSWORD=123456" \ # mysql 접속하기 위한 환경변수
-e "MYSQL_DATABASE=wordpress" \
-e "MYSQL_USER=wordpress_user" \
-e "MYSQL_PASSWORD=123456" \
--network wordpress_net \ # 두 컨테이너 네트워크 연결위한 선언
mysql:5.7
docker \
run \
--name app \
-v "$(pwd)/app_data:/var/www/html" \
-e "WORDPRESS_DB_HOST=db" \
-e "WORDPRESS_DB_USER=wordpress_user" \
-e "WORDPRESS_DB_NAME=wordpress" \
-e "WORDPRESS_DB_PASSWORD=123456" \
-e "WORDPRESS_DEBUG=1" \
-p 8080:80 \ # 호스트 8080 포트와 wordpress 컨테이너 80포트 연결
--network wordpress_net \
wordpress:latest
docker-compose.yml 파일로 만들기
version: "3.7"
services:
db: # 첫번째 컨테이너 => mysql db
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql # 호스트의 db_data 디렉토리 생성해서 컨테이너의 /var/lib/mysql 디렉과 연결
restart: always
environment: # mysql 접속 환경변수
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress_user
MYSQL_PASSWORD: 123456
app: # 두번째 컨테이너 => wordpress
depends_on: # mysql db 컨테이너를 wordpress 컨테이너보다 먼저 실행한다는 의미
- db
image: wordpress:latest
volumes:
- ./app_data:/var/www/html
ports:
- "8080:80" # 호스트 8080 포트와 wordpress 80포트 연결.
# 외부에서 wordpress만 연결하기 위함. (db는 외부에서 연결되면 안되지)
restart: always
environment: # wordpress 컨테이너에서 mysql 컨테이너에 접속하기 위한 환경변수
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress_user
WORDPRESS_DB_PASSWORD: 123456
※ 볼륨을 쓰는 이유
volumes:
- ./db_data:/var/lib/mysql
컨테이너 안에 있는 /var/lib/mysql 디렉토리에 데이터를 저장하면
컨테이너를 껐을때 데이터가 유실된다.
그래서 호스트 위치에 db_data 라는 디렉토리를 만들어
이 곳에 데이터를 저장하겠다는 의미.
※ shell 에서 docker network create wordpress_net 라고 선언해야
두 컨테이너의 네트워크가 생성되는 것과 달리
docker compose 에서는 두 컨테이너의 네트워크를 자동으로 생성한다.
728x90
'#01.생활코딩 > +04.Docker' 카테고리의 다른 글
| [생활코딩] 도커 이미지 만드는 법 - Dockerfile & build (0) | 2023.04.15 |
|---|---|
| [생활코딩] Docker 입문 정리 (0) | 2023.04.12 |