docker run -p 8080:8080
-d -e SPRING_DATASOURCE_URL=jdbc:mysql://~~
-e SPRING_DATASOURCE_PASSWORD=~~~ springboot-jdbc-template
앞에꺼 : 외부에서 받아옴
뒤에꺼 : Docker로 가는 것(docker run nginx)
위의 이미지에서는 8081로 받아 8080포트로 보내고, 8082로 받아 8080포트로 내보낸다. 이때 8080포트가 같아도 컨테이너가 다르기 때문에 정상작동 한다.
(1) name 옵션을 이용해 이름을 지정하여 mysql띄우기
docker run -d --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress mysql:5.7
(2) link를 이용해 name을 지정해서 띄운 mysql과 연동하여 wordpress 띄우기
docker run -d -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=password --name wordpress --link wordpressdb:mysql -p 80 wordpress
(3) 컨테이너에 실행중인 wordpress 포트번호 확인
(4) wordpress 포트번호를 AWS EC2에서 열어줘야함
(5) wordpress 사이트 접속
(6) wordpress 사이트 출력
컨테이너를 삭제하면 컨테이너에 존재하던 파일 시스템이나 애플리케이션 파일 뿐만 아니라, 그동안 쌓아놨던 로그인 정보나 게시글 등과 같은 데이터가 함께 삭제될 수 있다. 이를 방지하기 위해 사용하는 것이 볼륨으로 볼륨을 활용하면, 데이터베이스 컨테이너를 삭제해도 데이터는 삭제되지 않도록 할 수 있다.
호스트와 컨테이너 간에 같은 디렉토리를 바라보게 하는것을 의미
docker run -d \
--name wordpressdb_hostvolume \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABASE=wordpress \
-v /home/wordpress_db:/var/lib/mysql \
mysql:5.7
docker run -d \
-e WORDPRESS_DB_PASSWORD=password \
--name wordpress_hostvolume \
--link wordpressdb_hostvolume:mysql \
-p 80 \
wordpress
(💡 /var/lib/mysql 는 MYSQL이 데이터를 저장하는 기본 디렉터리이다.)
/home/wordpress_db 로 이동해보니, mysql과 관련된 파일들이 있는 것을 확인할 수 있다.