Docker : 특정 디렉토리에 영구 볼륨 생성


16

Docker 의 영구 볼륨 을 만들어야합니다 . 볼륨의 이름을 지정 extra-addons하고에 있어야합니다 /mnt/.

이 명령을 실행합니다 :

sudo docker volume create /mnt/extra-addons

이 오류 메시지가 나타납니다.

Error response from daemon: create /mnt/extra-addons: "/mnt/extra-addons" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path

간단하게 실행할 때 : sudo docker volume create extra-addons, 나는이 문제에 직면하지 않지만를 사용하여 문제의 볼륨을 검사 할 때 sudo docker inspect extra-addons, 내가 원하지 않는 곳에 위치하고 있음을 알 수 있습니다.

[
    {
        "CreatedAt": "2018-04-21T14:40:25+03:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/extra-addons/_data",
        "Name": "extra-addons",
        "Options": {},
        "Scope": "local"
    }
]

나는 오히려 다음과 같이 볼륨을보고 싶다는 것을 의미합니다. /mnt/extra-addons

어떤 생각?

답변:


13

해결책을 찾았습니다.

로컬 지속 플러그인 을 설치해야했습니다 .

다음과 같이 볼륨을 마운트하여 마운트 지점에 만들어야했습니다.

 sudo docker volume create -d local-persist -o mountpoint=/mnt/ --name=extra-addons

내가 기대 한 것을 얻었는지 확인하십시오.

sudo docker volume inspect extra-addons

결과:

[
    {
        "CreatedAt": "0001-01-01T00:00:00Z",
        "Driver": "local-persist",
        "Labels": {},
        "Mountpoint": "/mnt/",
        "Name": "extra-addons",
        "Options": {
            "mountpoint": "/mnt/"
        },
        "Scope": "local"
    }
]

그것이 내가 찾던 것입니다.


6

도커에 플러그인을 설치하지 않으려면 볼륨에 대한 심볼릭 링크를 만드는 것이 좋습니다.

$ docker volume create <myVolume>
$ docker volume inspect <myVolume> 
[
    {
        "CreatedAt": "0001-01-01T00:00:00Z",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/<myVolume>/_data",
        "Name": "<myVolume>",
        "Options": {},
        "Scope": "local"
    }
]
$ mkdir /mnt/<myVolume>
# if you already have data in your volume, you should copy it to `/mnt/<myVolume>` now
$ sudo rm -rf /var/lib/docker/volumes/<myVolume>/_data
$ sudo ln -s /mnt/<myVolume> /var/lib/docker/volumes/<myVolume>/_data

이제 평소와 같이 볼륨을 자유롭게 사용하십시오 ( /mnt원하는대로 모든 데이터를 입력하십시오 )


Docker 관리 볼륨을 삭제하는 것이 좋습니다 생각하지 마십시오. 대신 호스트 디렉토리를 docker에 마운트하려면 마운트를 사용하십시오.
— Lex

3

local-persist드라이버를 사용하는 것이 좋은 방법 이라고 생각하지 않습니다 . 한동안 업데이트되지 않았습니다. docker mount를 사용하여 로컬 (호스트) 디렉토리를 docker 컨테이너에 마운트 할 수 있습니다.

다음을 실행하면 마운트 된 디렉토리가 데스크탑에 매핑 된 새 컨테이너가 생성됩니다.

mkdir extra-addons
docker run -it -v /Users/me/Desktop/extra-addons:/mnt/extra-addons busybox /bin/sh
ls

이제 볼 수있는 mnt컨테이너의 루트 폴더에 있습니다.

bin dev etc home mnt proc root sys tmp usr var

컨테이너에 새 파일 만들기

touch /mnt/extra-addons/test.txt

호스트 컴퓨터에 test.txt 파일을 만듭니다. 지정된 경로에서. 이것은 이제 양방향 읽기 / 쓰기 공유 폴더입니다. 여러 컨테이너가 동일한 폴더를 마운트 할 수 있습니다. 컨테이너를 종료하면 지속됩니다.

여기에 이미지 설명을 입력하십시오


고마워, 이것은 나에게 단계를 구했다. 볼륨을 추가하려고했습니다. 그냥 디렉토리를 마운트
— Chaim Eliyah
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.