Home Docker, volume(1)
Post
Cancel

Docker, volume(1)

기본 명령어 정리

  • docker run -it ubuntu:14.04
    • 이미지를 받음과 동시에 컨테이너 생성 후 cli진입
  • docker pull centos:7
    • 이미지를 받는 또다른 방법
  • docker create -i -t --name mycentos centos:7
    • 컨테이너 빌드
  • docker start name
    • 컨테이너 실행
  • docker attach name
    • 내부로 들어가기
  • 내부 진입에서 빠져나오는 방법 2가지
    • exit : 컨테이너 종료 후 빠져나옴
    • Ctrl+P,Q : 컨테이너를 종료 시키지 않고 내부에서만 빠져나옴
  • docker ps
    • 실행중인 컨테이너 목록 확인
  • docker ps -a
    • 전체 컨테이너 목록 확인
  • docker rename before after
    • 컨테이너 이름 변경
  • docker rm name
    • 컨테이너 삭제, 실행중인 컨테이너는 중지 후 삭제
  • docker rm -f name
    • 실행중인 컨테이너 삭제
  • docker stop name
    • 컨테이너 중지


컨테이너 애플리케이션 구축

  • docker run -i -t --name mywebserver -p 80:80 ubuntu:14.04
    • -p : 컨테이너의 포트를 호스트의 포트와 바인딩 [호스트의 포트]:[컨테이너의 포트]
  • wordpress + mysql

  • mysql 설치
    • docker run -d --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress mysql:5.7
  • wordpress 설치
    • docker run -d -e WORDPRESS_DB_PASSWORD=password --name wordpress --link wordpressdb:mysql -p 80 wordpress:wq
1
2
3
4
CONTAINER ID   IMAGE          COMMAND                   CREATED              STATUS              PORTS                   NAMES
bbe628b7632a   wordpress      "docker-entrypoint.s…"   11 seconds ago       Up 10 seconds       0.0.0.0:55318->80/tcp   wordpress
af37fb7c59ea   mysql:5.7      "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp, 33060/tcp     wordpressdb
b85463cd9339   ubuntu:14.04   "/bin/bash"               6 minutes ago        Up 6 minutes        0.0.0.0:80->80/tcp      mywebserver
  • docker port name
    • 컨테이너의 연결 포트를 확인 가능


error establishing a database connection

  • 참고 : 해당 도커 예제는 시작하세요! 도커/쿠버네티스 책으로 진행.

  • mysql, wordpress, ubuntu 설치하여 진행중 최종 wordpress 실행시
    • error establishing a database connection 에러가 발생.
  • wordperss 내부로 진입하여 wp-config.php파일 확인 결과 설정된 db 설정이 잘못되어 수정후 진행(wordpressdb 정보로)
    • docker exec -it wordpress /bin/bash
  • 추후 컨테이너로 올릴때에는
    • docker run -d -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=password --name wordpress_hostvolume --link wordpressdb_hostvolume:mysql -p 80 wordpress
      • 해당 설정 사용, DB 설정에 필요한 환경변수를 모두 넣어주어서 실행


docker volume, 호스트 볼륨 공유 방식

  • 위에서 생성된 wordpressdatabase의 데이터들은 컨테이너 삭제시 없어진다는 단점이 있음. 어떻게 하면 좋을까?
    • volume 사용.
  • docker run -d --name wordpressdb_hostvolume -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -v E:\docker\volume:/var/lib/mysql mysql:5.7
  • -v /home/wordpress_db:/var/lib/mysql mysql:5.7
    • 호스트의 /home/wordpress_db 디렉터리와 컨테이너의 /var/lib/mysql 디렉터리를 공유.
  • 책에서는 /home/wordpress_db 폴더를 생성하였지만 실습에서는 E:\docker\volume 경로에 볼륨을 지정.
    • 파일 확인
    • 동기화 되는 개념이 아니라 완전 같은 디렉토리를 바라보게 된다!

volume_check

  • -v옵션을 통한 호스트 볼륨 공유는 호스트의 디렉터리를 컨테이너의 디렉터리에 마운트하는 개념.
This post is licensed under CC BY 4.0 by the author.