Red Hat Training
A Red Hat training course is available for RHEL 8
5.11. 두 컨테이너 간 파일 공유
컨테이너를 삭제한 경우에도 볼륨을 사용하여 컨테이너에 데이터를 유지할 수 있습니다. 볼륨은 여러 컨테이너 간에 데이터를 공유하는 데 사용할 수 있습니다. 볼륨은 호스트 시스템에 저장된 폴더입니다. 컨테이너와 호스트 간에 볼륨을 공유할 수 있습니다.
주요 이점은 다음과 같습니다.
- 컨테이너 간에 볼륨을 공유할 수 있습니다.
- 볼륨은 백업 또는 마이그레이션이 더 쉽습니다.
- 볼륨이 컨테이너 크기를 늘리지 않습니다.
사전 요구 사항
-
container-tools
모듈이 설치되어 있습니다.
절차
볼륨을 생성합니다.
$ 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
the
mntPoint
변수에 의해 정의된 디렉터리에 있는 모든 파일을 나열합니다.$ ls $mntPoint/ host.txt
myubi1
이라는 컨테이너를 실행하고호스트의 hostvolume
볼륨 이름으로 정의된 디렉터리를 컨테이너의/containervolume1
디렉터리에 매핑합니다.$ podman run -it --name myubi1 -v hostvolume:/containervolume1 registry.access.redhat.com/ubi8/ubi /bin/bash
the
mntPoint 변수(-
가 손실되어 사용되지 않는 볼륨을 제거할 수 있습니다. 항상v $mntPoint
:/containervolume1)에서 정의한 볼륨 경로를 사용하는 경우podman 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/ubi8/ubi /bin/bash
컨테이너의 공유 볼륨에 있는 파일을 나열합니다.
# ls /containervolume2 container1.txt host.txt
myubi1 컨테이너 내부에서 생성한 host
.txt
파일과container1.txt
파일을 확인할 수 있습니다./containervolume2
디렉터리에 텍스트 파일을 생성합니다.# echo "Hello from container 2" >> /containervolume2/container2.txt
-
CTRL+p 및
를 사용하여 컨테이너에서 분리합니다.CTRL+
q 호스트의 공유 볼륨에 있는 파일을 나열하고 세 개의 파일이 표시됩니다.
$ ls $mntPoint container1.rxt container2.txt host.txt
추가 리소스
-
podman-volume
도움말 페이지