Cloud Engineering/Docker 🐳

[Docker] 도컀 μ»¨ν…Œμ΄λ„ˆ Bind Mount

minjiwoo 2023. 2. 2. 13:36
728x90

λ„μ»€μ˜ μ»¨ν…Œμ΄λ„ˆ λ‚΄μ—μ„œ μƒμ„±λ˜λŠ” λ°μ΄ν„°λŠ” λŸ°νƒ€μž„ 데이터이닀. 즉, μ»¨ν…Œμ΄λ„ˆκ°€ μ‚­μ œλ˜λ©΄ 데이터듀도 ν•¨κ»˜ μ‚­μ œλœλ‹€. λ”°λΌμ„œ 영ꡬ적인 λͺ©μ μœΌλ‘œ 데이터λ₯Ό μ €μž₯ν•˜κ³  μ‹Άλ‹€λ©΄ μ»¨ν…Œμ΄λ„ˆμ— μ €μž₯ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, μ»¨ν…Œμ΄λ„ˆμ˜ μ™ΈλΆ€ λ©”λͺ¨λ¦¬μ— 마운트 μ‹œν‚¨ ν›„ λ©”λͺ¨λ¦¬μ— μ €μž₯을 ν•˜λŠ” 것을 κΆŒν•œλ‹€. 

 

Bind Mount

호슀트의 파일 디렉토리와 μ»¨ν…Œμ΄λ„ˆμ˜ 디렉토리λ₯Ό μ—°κ²°ν•˜λŠ” 방식이닀. κ·Έλ ‡μ§€λ§Œ Bind MountλŠ” 도컀에 μ˜ν•΄μ„œ κ΄€λ¦¬λ˜μ§€ μ•ŠμœΌλ©° 호슀트의 νŒŒμΌμ‹œμŠ€ν…œμ— λŒ€ν•΄ μ˜μ‘΄μ μ΄λ‹€. λ˜ν•œ 호슀트의 λ―Όκ°ν•œ νŒŒμΌκΉŒμ§€ μ ‘κ·Όκ°€λŠ₯ν•˜λ―€λ‘œ λ³΄μ•ˆμ— μ·¨μ•½ν•˜λ‹€λŠ” 문제점이 μžˆλ‹€. 

Bind Mount λŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό μƒμ„±ν•˜κ±°λ‚˜ 싀행을 μ‹œμž‘ν•  λ•Œ μ—°κ²°ν•  수 있으며 이미 싀행쀑인 μ»¨ν…Œμ΄λ„ˆμ—λŠ” Bind Mount둜 μ—°κ²°μ‹œν‚¬ 수 μ—†λ‹€. λͺ…λ Ήμ–΄λŠ” docker run λͺ…λ Ήμ–΄ μ€‘μ—μ„œ -v μ˜΅μ…˜μ„ μ‚¬μš©ν•œλ‹€. --volume μ˜΅μ…˜μ„ 써도 λœλ‹€. 

$ docker container run -dt -v HOST_PATH:CONTAINER_PATH —name CONTAINER_NAME_IMAGE_REPO:TAG

[μ˜ˆμ‹œ]

[user@localhost ~]$ docker run -dt -v /home/user/data1:/data --name centos7-2 centos:7

호슀트의 /home/user/data1 디렉토리와 centos7-2 μ»¨ν…Œμ΄λ„ˆμ˜ /data 디렉토리λ₯Ό Bind Mount ν•œλ‹€. 

호슀트의 /home/user/data1 λ””λ ‰ν† λ¦¬μ—μ„œ νŒŒμΌμ„ μƒμ„±ν•΄λ³΄μž. 

[user@localhost data1]$ echo "from host docker" > file2
[user@localhost data1]$ ls
file1  file2

그리고 μ»¨ν…Œμ΄λ„ˆμ™€ 잘 μ—°κ²°λ˜μ—ˆλŠ”μ§€, centos7-2 μ»¨ν…Œμ΄λ„ˆμ˜ /data λ””λ ‰ν† λ¦¬μ—μ„œ 확인해본닀. 

[root@426d7027d8fe data]# ls -l
total 8
-rw-r--r--. 1 root root 25 Feb  2 02:14 file1
-rw-rw-r--. 1 1000 1000 17 Feb  2 02:17 file2

μ»¨ν…Œμ΄λ„ˆμ—μ„œ file2λ₯Ό μˆ˜μ •ν•œλ‹€. 

[root@426d7027d8fe data]# echo "docer container centos7-2" >> file2

ν˜ΈμŠ€νŠΈμ—μ„œλ„ μˆ˜μ •λœ λ‚΄μš©μ΄ 잘 λ°˜μ˜λ˜μ—ˆλŠ”μ§€ ν™•μΈν•œλ‹€. 

[user@localhost data1]$ cat file2
from host docker
docer container centos7-2
728x90