7-2.Docker Container Storage

몽자비루 ㅣ 2024. 5. 3. 15:56

  1. mysql DB data 영구 보존하기
    1. docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=pass mysql:latest
      • host path (/dbdata) 와 container path (/var/lib/mysql) 를 연결시켜 볼륨마운트를 통해 연결
      • container path 에 db 의 컨텐츠가 쌓이는데 이를 /dbdata 에 영구적으로 보존.
    2. docker  run -v <hostpath>:<container mount path> 실행하기
      • 경로 및 실행중인 docker 확인
        • /dbdata 경로 없음, 실행중인 docker .없음.
      • docker run -d --name db -v /dbdata:/var/lib/mysql-e MYSQL_ROOT_PASSWORD=pass mysql:latest 실행
        • /dbdata 경로 생성, 실행중인 docker 있음
        • container db 및 db mysql deamon 가 실행중인 상태
      • docker 실행하여 데이터 확인하기.
        • 동작중인 컨테이너에 접속
        • root 유저에 password = pass 로 접속
      • 컨테이너 내 데이터 생성 (dbdata 에 저장됨)
        • database 생성
        • dbdata 파일 확인하기 (rusharp가 있는 것을 볼 수 있음)
      • docker 종료 후 data 남아있는 지 확인
        • docker 종료 후 /dbdata 확인
    3. docker  run -v <container mount path> 실행하기
      • docker run -d --name db -v /var/lib/mysql-e MYSQL_ROOT_PASSWORD=pass mysql:latest 실행
      • docker inspect [컨테이너명] : 컨테이너 세부정보 보기
        • host path 가 /var/lib/docker/volumes/UUID/_data 로 지정됨
      • host path 확인하기
      • docker 종료 후 확인하기
    4.  docker volumes [command] : 볼륨과 관련된 커맨드 실행
      • docker volumes ls : local 내 볼륨 UUID 목록 보여짐
      • docker volume rm [UUID] : 해당 volume 삭제
  2. 웹데이터 readonly 서비스로 지원하기
    • docker  run -v <host path>:<container mount path>:<read write mode> 실행
  3. 컨테이너 간 데이터 공유하기
    1. df 명령어 : 디스크 사용량 모니터링
    2. 디스크 사용량 결과를 주기적으로 만들어내는 컨테이너 만들기.
      • df.sh 파일 만들기
        • subdirectory /webdata 만들기
        • df -h 결과를 /webdata/index.html 만듬
        • 10초간 sleep 후 다시 반복해서 실행
      • dockerfile 만들기

        • df.sh 파일을 ubuntu:18.04의 컨테이너 폴더에 저장함.
        • chmod  를 실행하여 /bin/df.sh 실행하도록 빌드.
      • docker build
      • docker image 목록에서 확인하기
    3. 컨테이너 데이터 공유하기
      • 디스크 사용량을 주기적으로 만들어 /webdata에 입력함.
      • /webdata 의 data를 /usr/share/nginx/html 에 read only로 실행
      • 실행 결과 확인