iT邦幫忙

2023 iThome 鐵人賽

0
DevOps

跟著菜鳥手把手用Docker建立服務系列 第 8

Day8 - 菜鳥的足跡紀錄 Volume 人生第二課

  • 分享至 

  • xImage
  •  

來到Volume人生第二堂課了,我們一起跨出了人生的一大步,這也對我們人生是有幫助的,只不過就是學個Volume也要牽扯到人生,也太小題大作了吧,我們開始進入人生正題吧/images/emoticon/emoticon07.gif


人生第二課: Bind Mount
來說文解字一下,Bind Mount 是一種將主機文件系統的特定目錄或文件掛載到容器內的Volume, 也就是說我們在自己的電腦創一個文件目錄,然後綁定到容器的文件目錄,可以把電腦創一個文件目錄想像成我們在Docker create volume,差別在一個存在電腦裡一個存在Docker虛擬機裡

先在自己的電腦創一個目錄
https://ithelp.ithome.com.tw/upload/images/20231211/20158512u6bwexMOPn.png

確認電腦的目錄路徑
https://ithelp.ithome.com.tw/upload/images/20231211/20158512GPD7aOZzXh.png

開始Bind Mount

docker run --name 'Container Name' -v 'Your Document Path':'Container Path'

https://ithelp.ithome.com.tw/upload/images/20231211/20158512pfPqea73DC.png

  • 我先用自己設計好的 Mysql image 做示範,我也在 /Users/Yen/Volume 創一個Folder
  • 並寫綁定Container的 /var/log

啟動Contaner時去確認/Users/Yen/Volume 會發現多一個mysqld.log,沒錯已經Bind Mount成功
https://ithelp.ithome.com.tw/upload/images/20231211/201585123F0HNSydlU.png

電腦的 /Users/Yen/Volume 跟Container的 /var/log 他們是連動的是動態的,也就是說不管在哪邊做輸入或修改,兩邊都會同步

我在mysqld.log最後一行加入test test hello world
https://ithelp.ithome.com.tw/upload/images/20231211/201585124Wh0spdlyO.png

之後我們到Container的 /var/log/mysqld.log 去做確認是否也有test test hello world

docker exec -it 'Your Container' bash

https://ithelp.ithome.com.tw/upload/images/20231211/20158512Be1Og7pD5L.png

more /var/log/mysqld.log

可以發現最後一行有test test hello world
https://ithelp.ithome.com.tw/upload/images/20231211/20158512vNoUMTTxXf.png

當然也可以在Container的/var/log/mysqld.log加文字測試,然後電腦裡的/Users/Yen/Volume/mysqld.log一樣也會有,可以自己玩看看


如果前面人生第一堂課,有打好基礎,這堂人生第二堂課,其實會很容易上手及理解,人生就是要先苦後甘,這樣的人生才有意義/images/emoticon/emoticon07.gif


上一篇
Day7 - 菜鳥的足跡紀錄 Volume 人生第一課
下一篇
Day9 - 菜鳥的足跡紀錄 Volume 人生第三課
系列文
跟著菜鳥手把手用Docker建立服務30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言