5.11. 두 컨테이너 간 파일 공유
컨테이너를 삭제하는 경우에도 볼륨을 사용하여 컨테이너에 데이터를 유지할 수 있습니다. 볼륨은 여러 컨테이너 간에 데이터를 공유하는 데 사용할 수 있습니다. 볼륨은 호스트 시스템에 저장된 폴더입니다. 볼륨은 컨테이너와 호스트 간에 공유할 수 있습니다.
주요 장점은 다음과 같습니다.
- 볼륨은 컨테이너 간에 공유할 수 있습니다.
- 볼륨을 백업하거나 마이그레이션하는 것이 더 쉬워졌습니다.
- 볼륨은 컨테이너 크기를 늘리지 않습니다.
사전 요구 사항
-
container-tools
meta-package가 설치되어 있습니다.
절차
볼륨을 생성합니다.
$ podman volume create hostvolume
볼륨에 대한 정보를 표시합니다.
$ podman volume inspect hostvolume [ { "name": "hostvolume", "labels": {}, "mountpoint": "/home/username/.local/share/containers/storage/volumes/hostvolume/_data", "driver": "local", "options": {}, "scope": "local" } ]
volumes 디렉터리에 볼륨을 생성합니다. 더 쉽게 조작하기 위해 마운트 지점 경로를 변수에 저장할 수 있습니다.
$ mntpoint=$(podman volume inspect hostvolume --format {{.Mountpoint}})
.sudo podman volume create hostvolume
을 실행하면 마운트 지점이/var/lib/containers/storage/volumes/hostvolume/_data
으로 변경됩니다.mntPoint
변수에 저장된 경로를 사용하여 디렉터리 내에 텍스트 파일을 생성합니다.$ echo "Hello from host" >> $mntPoint/host.txt
mntPoint
변수에서 정의한 디렉터리의 모든 파일을 나열합니다.$ ls $mntPoint/ host.txt
myubi1
이라는 컨테이너를 실행하고호스트의 hostvolume
볼륨 이름으로 정의된 디렉터리를 컨테이너의/containervolume1
디렉터리에 매핑합니다.$ podman run -it --name myubi1 -v hostvolume:/containervolume1 registry.access.redhat.com/ubi9/ubi /bin/bash
mntPoint 변수(-
v $
)로 정의된 볼륨 경로를 사용하는 경우mntPoint
:/containervolume1podman volume prune
명령을 실행할 때 데이터를 손실할 수 있으므로 사용되지 않는 볼륨을 제거합니다. 항상-v hostvolume_name:/containervolume_name
을 사용합니다.컨테이너의 공유 볼륨에 있는 파일을 나열합니다.
# ls /containervolume1 host.txt
호스트에서 생성한
host.txt
파일을 볼 수 있습니다./containervolume1
디렉터리에 텍스트 파일을 생성합니다.# echo "Hello from container 1" >> /containervolume1/container1.txt
-
CTRL+p
및CTRL+q
를 사용하여 컨테이너에서 분리합니다. 호스트의 공유 볼륨에 있는 파일을 나열하십시오. 두 개의 파일이 표시됩니다.
$ ls $mntPoint container1.rxt host.txt
이 시점에서 컨테이너와 호스트 간에 파일을 공유하고 있습니다. 두 컨테이너 간에 파일을 공유하려면
myubi2
라는 다른 컨테이너를 실행합니다.myubi2
라는 컨테이너를 실행하고호스트의 hostvolume
볼륨 이름으로 정의된 디렉터리를 컨테이너의/containervolume2
디렉터리에 매핑합니다.$ podman run -it --name myubi2 -v hostvolume:/containervolume2 registry.access.redhat.com/ubi9/ubi /bin/bash
컨테이너의 공유 볼륨에 있는 파일을 나열합니다.
# ls /containervolume2 container1.txt host.txt
myubi1
컨테이너 내에서 생성한 호스트 및container1.txt
에서 생성한host.txt
파일을 볼 수 있습니다./containervolume2
디렉터리에 텍스트 파일을 생성합니다.# echo "Hello from container 2" >> /containervolume2/container2.txt
-
CTRL+p
및CTRL+q
를 사용하여 컨테이너에서 분리합니다. 호스트의 공유 볼륨에 있는 파일을 나열하십시오. 세 개의 파일이 표시됩니다.
$ ls $mntPoint container1.rxt container2.txt host.txt
추가 리소스
-
podman-volume
도움말 페이지