본문 바로가기
Containers/Docker

간단한 Docker 실습

by shinebee* 2020. 7. 20.

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
 

Docker Hub

Docker Certified:Trusted & Supported Products Certified Containers provide ISV apps available as containers. Certified Plugins for networking and volumes in containers. Certified Infrastructure delivers an optimized and validated Docker platform for enterp

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

댓글