docker: 데이터 볼륨 생성부터 삭제까지

3327 단어 Docker

데이터 볼륨


Docker에서 데이터를 영구화하는 것은 반드시 주의해야 할 문제입니다.
그곳에서 사용하는 것은 데이터 볼륨이다.데이터 볼륨은 Docker 컨테이너 - 호스트 간에 디렉터리를 직접 공유함으로써 데이터의 지속성을 실현하는 메커니즘입니다.컨테이너를 버리더라도 데이터 볼륨은 호스트에 유지됩니다.
데이터 볼륨 용기 방법을 용기의 데이터 지속화 방법으로 사용하는 것을 권장합니다.
여기에서 용기 사이에 디렉터리를 공유할 것입니다.데이터 볼륨 컨테이너는 데이터만 보존하는 용기로 호스트 측에서 보존하는 일부 지구화 데이터를 다른 용기에 볼륨으로 공유할 수 있습니다.
데이터 볼륨 컨테이너의 볼륨은 호스트 측 /var/lib/docker/volumes/ (관리 영역) 아래에 있습니다.

볼륨 생성

$ docker volume create --name <VOLUME NAME>

훑어보다

$ docker volume ls
DRIVER              VOLUME NAME
local               0a990e22051c0815c18cb10ae5eea84ce37db2e91e83c3e976d54646c466c249
...<omitted>...
local               mysql-data

마운트

$ docker run [options] -v {Host directory}:{Container directory} <Repository>[:tag] [Command] [Arguments]

# 例)
$ docker run -d --name mysql -p 3306:3306 -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql

삭제

$ docker volume rm <VOLUME NAME>

모두 삭제

$ docker volume rm $(docker volume ls -qf dangling=true)

링크 중단만 삭제

$ docker volume ls -qf dangling=true | xargs -r docker volume rm
  • [Command A] | xargs [Command B]: 명령 A의 실행 결과를 매개 변수로 명령 B
  • 실행
  • -roption: 표준 입력(매개변수)이 비어 있으면 명령 B
  • 를 실행하지 않습니다.

    데이터 내보내기


    다른 용기에서 데이터 볼륨 용기에 사용되는 데이터를 사용하려면 데이터를 내보내야 합니다.
    볼륨 데이터를 호스트로 내보내는 방법을 설명합니다.
    $ docker container run -v $PWD:/tmp \
      --volumes-from mysql-data \
      busybox \
      tar cvzf /tmp/mysql-backup.tar.gz /var/lib/mysql
    
    상술한 예에서 다음과 같은 인상이다.
  • mysql-data(데이터volume 용기)의 /var/lib/mysql 내용을 tar압축
  • 압축된 파일을 /tmpbusybox 용기에 저장한 mysql-backup.tar.gz 이하
  • busybox 용기의 /tmp 호스트 측의 현재 디렉터리에 불러오기
  • 좋은 웹페이지 즐겨찾기