当前位置: 首页 > news >正文

Windows Server 使用Docke部署挂载问题(安装后无限重启崩溃迁移镜像到D盘打包镜像)

文章目录

  • 前言
  • 一、问题:无限重启崩溃
    • 尝试:权限不足?
    • 解决:用Docker-Compose安装并挂载数据卷
  • 二、问题:镜像磁盘默认挂载在C盘
      • 尝试:通过修改Docker修改镜像磁盘到D盘
      • 解决:通过修改docker的settings文件
  • 五、打包自己的镜像
  • 总结


前言

问题:在windows server中安装遇到了安装后启动后不到一分钟就崩溃的问题,后面查看log发现可能是挂载到本地目录时出现问题,疑似本地目录权限不足导致挂载出问题。可是又不能不挂载,要改镜像中的配置需要先启动容器再改配置。
下面是以我部署过程发现问题,解决问题的思路为阶段讲解,大家可以当故事或者乐子看。

有道是当局者迷,旁观者清,有时我们遇到问题可能会绕几个弯才解决问题。不久后再回忆(再做一遍的时候)又会感叹自己当时的愚笨,明明能一步到位。其实这在科学上也并无道理,当一个人去思考问题的时候大脑就会形成不同的回路,当我们遇到问题解决问题后再都思考相似的问题,就会发现能够快速的处理问题了。
爱因斯坦和我们的区别也就是神经元密度更大,思考一个很难的问题时能快速反应,做出相应的推算、想法。


一、问题:无限重启崩溃

尝试:权限不足?

首先考虑权限问题,第一个就是怀疑远程操作的原因导致权限不足。使用windows远程桌面(右键windows图标-运行-填入mstsc )以及实操发现没问题。(错怪远程软件了,毕竟都2024年了)
在这里插入图片描述
那就去给文件夹赋予当前用户权限,如果这步成功了就可以返回之前的文章手把手教你用Docker搭建gitlab。

解决:用Docker-Compose安装并挂载数据卷

我在当时排除了远程链接的问题后就开始寻找其他方法,发现了另一种安装方式,用yml文件提前设置配置再安装。

Docker-Compose是高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具。

利用这种方法成功安装后,如果配置中挂载在本地还是有问题,但天无绝人之路。通过创建数据卷的方式进行了挂载。

docker volume create xxx

docker在容器中管理数据主要有三种方式:

  • 数据卷(Volumes)
  • 挂载主机目录(Bind mounts)
  • 数据卷容器(Data Volume Containers)

后面遇到了ssh配置没开导致下拉上传失败的问题,又将sshd_config文件映射到本地,最后启动后重新执行ssh restart,问题得以解决。(由此看来Docker-Compose并没有直接使用docker安装方便)

二、问题:镜像磁盘默认挂载在C盘

尝试:通过修改Docker修改镜像磁盘到D盘

C盘空间不大,挂载后想修改Disk image location,修改到D盘后Apply,但是又会莫名其妙的恢复,一查发现是需要使用WSL的方式使用docker才能修改,而且修改后之前的镜像会清空,注意存档。在这里插入图片描述
在这里插入图片描述

解决:通过修改docker的settings文件

奈何不能使用,我们去C:\Users\Administrator\AppData\Roaming\Docker下找到settings.json文件,修改其中的dataFolder

在这里插入图片描述
在这里插入图片描述
成功了,不容易。

在这里插入图片描述

五、打包自己的镜像

停止镜像

docker stop d09e2dfcf93

打包保存到当前目录

docker commit d09e2dfcf93 my-template-image
docker save my-template-image > my-template-image.tar

导入镜像

docker load -i my-template-image.tar

查看

docker images

总结

如果是运维人员,学习过系统化的内容,他们可能很容易解决这些小问题。而Unity程序员在自己布置这些问题时,仍然需要记录和整理,作为一种自我提升和学习的方式,共勉之。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SSH、FTP、SFTP相关协议详解
  • Android Framework之Pkms详解
  • fatal: The current branch master has no upstream branch.
  • 【最小生成树】(三) Prim 算法
  • 某通用系统0day审计过程
  • Leetcode - 周赛409
  • glTF的基本结构
  • 【OpenHarmony】openharmony移植到RK3568------搭建开发环境
  • Spring——Second
  • AI赋能周界安防:智能视频分析技术构建无懈可击的安全防线
  • c++版opencv长文指南
  • Java进阶篇之深入理解多态的概念与应用
  • PHP项目任务系统小程序源码
  • 【网络基础一】几乎不讲任何网络协议细节,搭建网络基本结构
  • 【vue】在页面右下角添加悬浮按钮组件
  • 分享一款快速APP功能测试工具
  • 2017-08-04 前端日报
  • Create React App 使用
  • Debian下无root权限使用Python访问Oracle
  • ES6简单总结(搭配简单的讲解和小案例)
  • HTTP--网络协议分层,http历史(二)
  • JAVA多线程机制解析-volatilesynchronized
  • java小心机(3)| 浅析finalize()
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Nodejs和JavaWeb协助开发
  • Redux系列x:源码分析
  • Spring Cloud中负载均衡器概览
  • tensorflow学习笔记3——MNIST应用篇
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 构建二叉树进行数值数组的去重及优化
  • 记录一下第一次使用npm
  • 使用 Docker 部署 Spring Boot项目
  • 小李飞刀:SQL题目刷起来!
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 一个完整Java Web项目背后的密码
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​2021半年盘点,不想你错过的重磅新书
  • ​520就是要宠粉,你的心头书我买单
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #Linux(make工具和makefile文件以及makefile语法)
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (31)对象的克隆
  • (待修改)PyG安装步骤
  • (未解决)macOS matplotlib 中文是方框
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (译) 函数式 JS #1:简介
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)Unity3DUnity3D在android下调试
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .bat文件调用java类的main方法
  • .form文件_一篇文章学会文件上传
  • .java 9 找不到符号_java找不到符号
  • .NET 表达式计算:Expression Evaluator