1. volume 생성
docker volume create web_vol
docker volume create db_vol
docker volume ls //확인
2. network 생성
docker network create --subnet=192.168.100.0/24 --gateway=192.168.100.254 --internal alpha
docker network ls //확인
- bridge network는 기본으로 있다.
3. os / web1 / web2 container 생성
docker run -itd --name os -v web_vol:/root/html:rw --network bridge centos:latest
docker run -itd --name web1 -v web_vol:/usr/local/apache2/htdocs:ro --network bridge httpd:latest
docker run -itd --name web2 -v web_vol:/usr/local/apache2/htdocs:ro --network bridge httpd:latest
- httpd:latest 이미지로 생성된 모든 컨테이너는 /usr/local/apache2/htdocs 디렉토리에 index.html 파일이 존재한다.
- web1, web2 컨테이너가 web_vol 볼륨에 성공적으로 연결되었다면 os 컨테이너의 /root/html에서도 index.html 파일을 확인 할 수 있어야 한다.
4. network 추가
docker network connect alpha web1
docker network connect alpha web2
- web1, web2에 alpha network 연결.
5. db container 생성
docker run -itd --name db -v db_vol:/var/lib/mysql:rw --network alpha -e "MYSQL_ROOT_PASSWORD=1234" mysql:5.7
6. index.html 파일 수정 (os에서)
docker cp os:/root/html/index.html ~/Desktop
cd ~/Desktop
vi index.html
Hello~ Docker~
docker cp ./index.html os:/root/html/index.html
docker exec os cat /root/html/index.html //확인
- os 에서 수정하는 이유는 os만 rw의 권한을 가졌기 때문.
7. web1, web2 IP 확인
docker inspect web1 | grep "IPA"
docker inspect web2 | grep "IPA"
8. curl 확인
curl [IP]
9. 전체 확인
docker inspect bridge
docker inspect alpha
docker inspect web1
docker inspect web2
docker inspect db
docker inspect os
< + wordpress >
- wordpress를 얹기위해 필요한 옵션
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
- 참고 : hub.docker.com
1. db container를 만든다 (mariadb)
- alpha network 사용.
docker run --name wp_db -e "MYSQL_DATABASE=wordpress" \
-e "MYSQL_USER=wp_admin" -e "MYSQL_ROOT_PASSWORD=1234" \
-e "MYSQL_PASSWORD=dkagh1." --network alpha mariadb:latest
- 볼륨을 직접 연결하는 것을 권장한다. -> -v db_vol:/var/lib/mysql
2. db 확인
docker exec -it wp_db mysql -u root -p
3. container 실행하면서 연결을 동시에
docker run --name wp -p 8080:80 -e "WORDPRESS_DB_HOST=192.168.100.4" \
-e "WORDPRESS_DB_USER=wp_admin" -e "WORDPRESS_DB_PASSWORD=dkagh1." \
-e "WORDPRESS_DB_NAME=wordpress" --network alpha -d wordpress
- db 생성할때 network 지정하지 않으면 link 걸어줘야 한다. -> --link wordpress_db:wp_db
- 볼륨 -> -v web_vol:/var/www/html
※ WORDPRESS_DB_HOST=이름으로 연결이 되지않아 IP로 연결.
4. wordpress IP 확인
docker inspect wp | grep "IPA"
5. log 확인
docker logs wp
6. 웹으로 확인
IP:8080
'Containers > Docker' 카테고리의 다른 글
이미지 제작 (0) | 2020.07.20 |
---|---|
이미지 다운로드 / 관리 / 삭제 (0) | 2020.07.14 |
Install Docker (Ubuntu) (0) | 2020.07.13 |
Docker란? (0) | 2020.07.13 |
댓글