[docker] 도커 볼륨

임재규·2023년 4월 28일
0

Data_Engineering_Track_22

목록 보기
8/24

도커 볼륨(volume)이란?

도커 볼륨은 호스트 서버에 존재하며 컨테이너 속 파일들을 연동시키기 위해 사용

도커 컨테이너 공유 -v 실습

Docker의 '-v' 옵션 - 호스트와 컨테이너 간의 디렉토리를 공유하는 기능

docker run -v [호스트 경로]:[컨테이너 경로]:[옵션]
# alicek106/volume_test 이미지를 실행해 volume_dummy_0427 컨테이너 생성
docker run -it --name volume_dummy_0427 alicek106/volume_test

cd /home/testdir_2

ls

컨테이너를 생성한 뒤 /home/testdir_2 경로에 test파일이 있는 지 확인했다.

# volume_overide_0427 컨테이너 생성 후 test_0424과 컨테이너 내부의 /home/testdir_2 연결하여 파일 공유
docker run -it --name volume_overide_0427 -v ~/test_0426:/home/testdir_2 alicek106/volume_test

홈 디렉토리(~)에 호스트 디렉토리가 존재 하지 않아 자동으로 test_0426 폴더가 생성됐고, 컨테이너 안에 testdir_2 폴더에 내용은 없었다.

컨테이너 안에 /home/testdir_2 경로로 가서 텍스트 파일을 생성해 보았다.

cd /home/testdir_2

echo "Hi" > test.txt         # > 텍스트 파일 생성 (write - 덮어쓰기 느낌)
echo "Hello" >> test.txt     # >> 텍스트 파일에 생성 (append -기존내용에 추가)

exit

컨테이너 환경에서 나와 test_0424에 test.txt 파일이 있는 지 확인했는데, 존재했다.
test.txt 파일에 권한을 보니 root권한으로 돼있었다.

  • 권한 바꾸기
# chown [계정]:[그룹] [대상] - 파일 or 디렉토리 소유자 변경
root 권한을 user 권한으로 변경
sudo chown user:user ./test_0426
  • -volume-from 옵션
docker run -it --name vol_from_cont --volumes-from volume_overide_0427 ubuntu:14.04

volume_overide_0427 컨테이너가 가지고 있는 볼륨을 vol_from_cont 컨테이너가 사용할 수 있도록 설정하였고, 이미지는 우분투 14.04버전을 사용하였다.
vol_from_cont 컨테이너 안에서 텍스트 파일을 생성했더니 기존의 컨테이너들과 공유된 것을 확인할 수 있었다.

도커 볼륨 실습하기

# myvolume 볼륨을 생성하고 볼륨 목록 확인
docker volume create --name myvolume

docker volume ls

# myvolume_1, 2 컨테이너 생성 후 myvolume과 생성된 컨테이너 /root/경로와 연결
docker run -it --name myvolume_1 -v myvolume:/root/ ubuntu:14.04

# 새로운 배쉬창을 열어 생성
docker run -it --name myvolume_2 -v myvolume:/root/ ubuntu:14.04

# test파일 생성
mkdir /root/test

test파일을 생성했을 때, 두 컨테이너 모두 test파일이 있는 것을 알 수 있었다.

# Docker Volume에 대한 정보 출력
docker inspect myvolume

mountpoint를 통해 /var/lib/docker/volumes/myvolume/_data 경로에서 작업이 되는 걸 알 수 있었다.

profile
공부 기록

0개의 댓글