最近想搭建一套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

docker-ce 在windows10下使用volume的注意事项的更多相关文章

  1. 在Ubuntu14.04下安装Docker CE(1) - repository篇

    从2017年3月开始,Docker开始分为社区版本和企业版,也就是Docker CE和Docker EE, 原来Ubuntu14.04下,通过sudo apt-get install docker.i ...

  2. 记Windows10下安装Docker的步骤

    本文主要是记录吾八哥本人在Windows10下安装Docker的过程,当然这些步骤也是在网上搜索查阅资料得知而来的!具体步骤如下: 一.启用Hyper-V 打开控制面板 - 程序和功能 - 启用或关闭 ...

  3. CentOS_mini下安装docker 之 安装docker CE

    警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker. 原文地址:https://yeasy.gitbooks.io/docker_practice/inst ...

  4. 解决Windows10下无法对docker容器进行端口访问(端口映射的问题)

    解决Windows10下无法对docker容器进行端口访问(端口映射的问题) 问题详情 在Windows10系统服务器中安装了docker和docker-compose 并尝试在其中运行Nginx服务 ...

  5. CentOS7 下 yum 安装 Docker CE

    前言 Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤. Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10. Docker 官网有安装步骤,本文只是记录 ...

  6. CentOS下安装Docker CE教程

    一.安装前准备 1.硬件要求 CentOS 7(64-bit),内核版本不能低于3.10: CentOS 6.5(64-bit或更新的版本),内核版本为 2.6.32-431 或者更高版本,一般不建议 ...

  7. centos7 下安装Docker CE

    前提条件 操作系统要求 要保证centos-extrasrepository开启(enabled).默认处于开启状态. 推荐使用overlay2存储驱动 卸载老版本 $ sudo yum remove ...

  8. Ubuntu 16.04下docker ce的安装(待完善)

    参见:https://www.cnblogs.com/senlinyang/p/8203191.html https://blog.csdn.net/qq_34906391/article/detai ...

  9. Ubuntu 16.04下docker ce的安装

    卸载版本的docker sudo apt-get remove docker docker-engine docker.io 安装可选内核模块 从 Ubuntu 14.04 开始,一部分内核模块移到了 ...

随机推荐

  1. cesium入门示例-HelloWorld

    示例准备: 在Cesium ion官网(https://cesium.com/)上注册用户,获取AccessToken,在js代码入口设置Cesium.Ion.defaultAccessToken,即 ...

  2. Python---14面向对象高级编程(__slots__&@property)

    一.使用__slots__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: class Stude ...

  3. ZOJ 2532 网络流最小割

    求最小割的问题. 题意:已知网络中有n个源点,m的中转站(也就是节点),一个汇点(编号为0).给出网络,求一些边(增大这个边就可以增大汇点流量的边). 思路:一开始代码只找了有流=0就加入输出数组的情 ...

  4. JS截取字符串方法集合

    使用 substring()或者slice()   函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str="jpg|bmp|gif|ico|png&qu ...

  5. MyBatis之pageHelper分页插件

    1.先导入Maven,jar包依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifa ...

  6. 中文字体压缩器-解决css引入的字体太大的问题

    字蛛是一个中文字体压缩器 官方网站:http://font-spider.org/index.html 用于解决页面引入的css字体过大的问题 使用方法: npm i -g font-spider 在 ...

  7. Gif截屏工具 - GifCam

    如果你需要录制截屏并保存成gif图片格式,那么你一定不能错过GifCam这个神奇的小工具.它虽然只有600K,但功能不可小觑. GifCam (Gif相机) 是一款免费且非常优秀的视频录制/剪辑的GI ...

  8. JAVA WEB基础巩固之Json、Ajax

    一.Json(Json介绍)json校验工具 Json是JavaScript object notation的缩写,优点是易读易编写易于解析: 例如:Object: { "name" ...

  9. hexo+github搭建自己的博客

    之前很早就想用hexo弄一个自己独立的博客了,在博客园也写了很多的博客,不过不喜欢博客园的风格.不过今天,终于折腾成功了,用hexo搭建了一个在github写的博客,开心,后面会将自己以前的博客慢慢迁 ...

  10. iOS Swift 开发语言之初接触,纯代码创建UIView,UITableView,UICollectionView

    1. 初始化Label设置AttributeString override func viewDidLoad() { let label = UILabel(frame:CGRect(x:,y:,wi ...