最近想搭建一套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. byte的取值范围是-128~127,那么包含-128和127吗?

    本帖最后由 王德升老师 于 2019-12-27 17:56 编辑 byte的取值范围为什么是-128~127?如果面试官问你取值范围包含127吗?1. 首先我们知道Java中byte类型是1个字节占 ...

  2. Win32双缓冲画图原理

    网上有许多文章讲述了如何使用Visual C++程序实现双缓冲,都是用C++面向对象语言写的,可能对很多没有接触过面向对象语言的C语言初学者来说理解起来有些困难,并且有些好心人也只是把源代码贴上去,不 ...

  3. python ftp sftp

    ftp 上传下载文件 12345678910111213141516171819202122232425262728293031323334 from ftplib import FTPimport ...

  4. MatterTrack Route Of Network Traffic :: Matter

    Python 1.1 基础 while语句 字符串边缘填充 列出文件夹中的指定文件类型 All Combinations For A List Of Objects Apply Operations ...

  5. Kafka 安装及入门

    什么是Kafka? Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流 ...

  6. Ubuntu 16.04 PXE+kickstart部署系统

    #PXE+TFTP+Kickstart 自动部署服务器系统系统Ubuntu16.04apt-get install isc-dhcp-servervim /etc/default/isc-dhcp-s ...

  7. ubuntu 代理设置

    在学习工作中使用vagrant作为开发环境已经有很长一段时间了,使用ubuntu 作为开发系统 在使用中发现,即使修改了apt的source.list源文件,在面对一些开发中需要的软件工具的时候,不可 ...

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

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

  9. GIT 使用(一):安装和配置

    安装和配置 Table of Contents 1. 安装 2. 配置 1. 初次运行 Git 前的配置 小结 2. 用户信息 3. 别名 4. 查看已经存在的配置 3. 获取帮助 4. 参考与扩展阅 ...

  10. tp5.1 请求时间格式化

    当前时间:{$Request.time|date='Y-m-d H:i:s'} 注意database.php的配置!记录一下!