Docker 실습(구조파악, WordPress, 볼륨)

배지원·2022년 11월 8일
0

Docker

목록 보기
5/5
post-custom-banner

1. 명령어 예시로 알아보는 Docker 실습

docker run -p 8080:8080 
-d -e SPRING_DATASOURCE_URL=jdbc:mysql://~~ 
-e SPRING_DATASOURCE_PASSWORD=~~~ springboot-jdbc-template

(1) -p 8080:8080

  • 8080으로 받아 8080으로 내보낸다.

앞에꺼 : 외부에서 받아옴
뒤에꺼 : Docker로 가는 것(docker run nginx)


위의 이미지에서는 8081로 받아 8080포트로 보내고, 8082로 받아 8080포트로 내보낸다. 이때 8080포트가 같아도 컨테이너가 다르기 때문에 정상작동 한다.


(2) -d

  • daemon으로 실행하겠다는 의미

(3) -e

  • 환경 변수를 넘기는 명령어

(4) springboot-jdbc-template

  • springboot-jdbc-template 의 이미지를 생성하겠다는 의미

2. Docker WordPress 페이지 만들기

(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 사이트 출력


3. Docker 볼륨(데이터 베이스 데이터 지키기)

  • 컨테이너를 삭제하면 컨테이너에 존재하던 파일 시스템이나 애플리케이션 파일 뿐만 아니라, 그동안 쌓아놨던 로그인 정보나 게시글 등과 같은 데이터가 함께 삭제될 수 있다. 이를 방지하기 위해 사용하는 것이 볼륨으로 볼륨을 활용하면, 데이터베이스 컨테이너를 삭제해도 데이터는 삭제되지 않도록 할 수 있다.

  • 호스트와 컨테이너 간에 같은 디렉토리를 바라보게 하는것을 의미

(1) 마운트(공유)

  • -v 옵션을 사용하여 host의 /home/wordpress_db와 컨테이너에서의 /var/lib/mysql가 서로 공유되도록 해준다.
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과 관련된 파일들이 있는 것을 확인할 수 있다.

profile
Web Developer
post-custom-banner

0개의 댓글