1) docker network 생성
docker network create myapp-net
2) mysql과 연결할 docker volume 생성 - docker volume 방식
docker volume create mydb_data
3) mysql 이미지로 container 설정
docker run -itd \
--name=mysql_app \
-v mydb_data:/var/lib/mysql \
--restart=always \
-p 8098:3306 \
--net=myapp-net \
-e MYSQL_ROOT_PASSWORD=password# \
-e MYSQL_DATABASE=wpdb \
-e MYSQL_USER=wpuser \
-e MYSQL_PASSWORD=wppassword \
mysql:8.0-debian
4) web data와 연동할 docker volume을 생성
docker volume create myweb_data
5) wordpress 이미지로 웹과 db 연결
docker run -itd \
--name=wordpress_app \
-v myweb_data:/var/www/html \
-v ${PWD}/myweb-log:/var/log \
--restart=always \
-p 8099:80 \
--net=myapp-net \
-e WORDPRESS_DB_HOST=mysql_app:3306 \
-e WORDPRESS_DB_NAME=wpdb \
-e WORDPRESS_DB_USER=wpuser \
-e WORDPRESS_DB_PASSWORD=wppassword \
--link mysql_app:mysql \
wordpress
6) network 확인해보기
docker inspect wordpress_app | grep -i gateway
docker inspect mysql_app | grep -i gateway
7) 잘 돌아가는지 확인
docker ps
8) sql에 무엇이 담겨져 있는지 확인해보기
8-1) mysql_app container로 들어가기
docker exec -it mysql_app bash
8-2) mysql로 들어가기 (password 옵션)
mysql -uroot -p
8-3) 확인해보기
show databases;
use wpdb;
show tables;
databases 보기
container 만들때 만들었던 database 사용해보기
table 보기
비어있는 것을 확인할 수 있음.
1) 앞서 만들었던 ip:포트 번호를 통해 크롬창 열여주기
2) sql 확인하기
docker exec -it mysql_app bash
docker compose version
1) yml 코드 작성
vi docker-compose.yml
services:
mydb:
image: mysql:8.0-debian
container_name: mysql_app
volumes:
- mydb_data:/var/lib/mysql
restart: always
ports:
- 8031:3306
networks:
- backend-net
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
myweb:
depends_on:
- mydb
image: wordpress:latest
container_name: wordpress_app
ports:
- 8032:80
networks:
- frontend-net
- backend-net
volumes:
- myweb_data:/var/www/html
- ${PWD}/myweb-log:/var/log
restart: always
environment:
WORDPRESS_DB_HOST: mydb:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
networks:
frontend-net: {}
backend-net: {}
volumes:
mydb_data: {}
myweb_data: {}
2) 실행
docker compose up
3) 모두 없애기
docker compose down
docker volume rm 볼륨이름
docker ps -a
docker container ls
docker volume ls
docker stop container이름1 container이름2
docker rm container이름1 container이름2
1) git과 연동 (강사님꺼)
git clone https://github.com/brayanlee/cloud-webapp.git
2) yaml 코드 설명 및 작성
services:
webserver:
build: build/.
ports:
- "8010:8899"
depends_on:
- redis
redis:
image: redis:4.0
3) docker compose 실행
docker compose up
4) docker container 확인
docker ps -a