2017-11-09 4 views
0

아래 작업으로 컨테이너에서 새로 생성 된 파티션에 액세스하려고하지만 실패합니다.컨테이너에 새로 생성 된 파티션에 액세스하는 방법

사용 --device=lsblk

[[email protected] ~]# lsblk            
lsblk: dm-0: failed to get device path 
lsblk: dm-1: failed to get device path 
lsblk: dm-0: failed to get device path 
lsblk: dm-1: failed to get device path 
lsblk: dm-2: failed to get device path 
lsblk: dm-3: failed to get device path 
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 
vda 253:0 0 116G 0 disk 
├─vda1 253:1 0 52G 0 part /etc/hosts 
└─vda2 253:2 0 64G 0 part 
vdb 253:16 0 400G 0 disk 
vdc 253:32 0 100G 0 disk 
vdd 253:48 0 10G 0 disk 
vde 253:64 0 10G 0 disk 
vdf 253:80 0 10G 0 disk 
vdg 253:96 0 10G 0 disk 
[[email protected] ~]# parted -s /dev/vdg mklabel gpt mkpart 1 ext4 1 2M 

볼 수있는 새로운 데이터 파티션 생성하기 위해 디스크를

docker run --privileged -d --device=/dev/vde:/dev/vde centos 

사용 parted를 마운트 :

[[email protected] ~]# lsblk 
lsblk: dm-0: failed to get device path 
lsblk: dm-1: failed to get device path 
lsblk: dm-0: failed to get device path 
lsblk: dm-1: failed to get device path 
lsblk: dm-2: failed to get device path 
lsblk: dm-3: failed to get device path 
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 
vda 253:0 0 116G 0 disk 
├─vda1 253:1 0 52G 0 part /etc/hosts 
└─vda2 253:2 0 64G 0 part 
vdb 253:16 0 400G 0 disk 
vdc 253:32 0 100G 0 disk 
vdd 253:48 0 10G 0 disk 
vde 253:64 0 10G 0 disk 
vdf 253:80 0 10G 0 disk 
vdg 253:96 0 10G 0 disk 
└─vdg1 253:97 0 1M 0 part <=== 

액세스 할 수없는 ls와에게있는 내가 사용할 수 없다는 뜻 :

[[email protected] ~]# ll /dev/vdg* 
brw-rw---- 1 root disk 253, 96 Nov 9 02:31 /dev/vdg 

어떻게 접근 할 수 있습니까?

답변

0

Docker가 장치를 컨테이너로 전달하는 데 사용하는 현재 방법을 사용하면 컨테이너를 만든 후에 장치를 동적으로 전달할 수 없습니다.

이 문제에 대해 몇 가지 토론이있었습니다. moby/moby #22563은 병합 된 PR이지만 병합이 완료된 이후의 향상된 기능에 대한 토론이 있습니다. 또한 moby/moby #35359은 오픈 이슈/기능 요청으로 유스 케이스에도 도움이 될 수있는 장치 관련 기능을 요구합니다.

지금의 현재 해결 방법은 하나 개의 컨테이너에 fdisk를 실행하는 다음 만들어 사용할 수있는 모든 블록 장치를 통과 새 컨테이너/실행됩니다 :

:에 의해 Followod

docker run --privileged -it --rm --device=/dev/vde:/dev/vde fdisk /dev/vde 

docker run --privileged [...]\ 
    --device=/dev/vde:/dev/vde \ 
    --device=/dev/vde1:/dev/vde1 \ 
    --device=/dev/vde2:/dev/vde2 \ 
    centos