docker-ce 在windows10下使用volume的注意事項


最近想搭建一套CI/CD環境嘗試一下,因為手里雲服務太小了(1C1G),撐不起來gitlab和jenkins。恰巧年前配了台高配版的windows機器,就想在家里的機器上通過docker裝gitlab和jenkins。

但是經過嘗試,發現docker在windows10下面使用有很多坑,從網上帖子看,好像這個問題短期之內修復不了(涉及到文件系統了),故總結,並將踩坑經驗分享給大家

環境:win10專業版,使用hyper V支持docker,docker desktop community 2.2.0.4(43472)

 

docker掛載windows目錄到volume有問題:

如果是只讀的話可以,docker可以讀取文件

如果需要寫入,如新建文件等,應用會爆出權限不符等提示信息,總之就是不能寫入

 

解決辦法:

使用命令docker volume create VOLUME-NAME創建一個volume,並直接使用這個volume,就可以達到持久化數據的目的了

 

例:

docker volume create gitlab-data
docker run -d   --volume  gitlab-data:/var/opt/gitlab   gitlab-ce

 

 

 

 

然后又帶來了一個新問題:

如果需要訪問掛載的文件夾,怎么訪問?怎么備份這些文件?

直接給出方法:

 

# 隨便拉一個鏡像,我比較喜歡centos,ubuntu等亦可
docker pull centos


# 創建一個root鏡像,與宿主機相通
# 關閉這個docker,將不會殘留任何容器信息
docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -v /:/host centos /bin/bash


# 切換主機環境
chroot /host


# 打包鏡像文件到備份文件夾
# 我之前在docker desktop共享了E盤文件夾,被掛載到了host_mnt目錄下面,所以可以直接將tar打包到備份目錄下,當然不建議使用中文目錄
# /host_mnt/e/dockerdata/backup/是windows e盤預先創建好一個用於備份的文件夾
# /var/lib/docker/volumes是使用docker volume create創建出來的目錄位置,在這里可以看到所有的volume
# gitlab-data是創建的volume名稱


tar -zcvf /host_mnt/e/dockerdata/backup/gitlabdata.tar.gz /var/lib/docker/volumes/gitlab-data

 

執行這條命令之后,你會在你的windows的目錄E:\dockerdata\backup下發現gitlabdata.tar.gz這個備份文件

如果數據復位,可考慮逆操作這條tar指令

 

 

參考:

https://blog.csdn.net/weixin_30677475/article/details/99035126

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM