DockerFile

1、DockerFile如何编写

https://www.cnblogs.com/xmzhang/articles/15693702.html

Docker镜像和容器之间的关系

https://www.cnblogs.com/everest33Tong/p/14578031.html#top

容器卷是什么?

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:
卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷

1、一句话:有点类似我们Redis里面的rdb和aof文件
2、将docker容器内的数据保存进宿主机的磁盘中
3、运行一个带有容器卷存储功能的容器实例

docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录      镜像名

dockfile中卷的作用

数据卷的作用:
主要是为了实现数据的持久化,即数据不随着Container(容器)的结束而消失。,所以将目录从宿主机挂载到容器中,实现数据的同步和备份。在容器里边的改动,我们可以在宿主机里感知,而在宿主机里面的改动,在容器里边可以感知到。

其实一般的dockfile如果不是数据库类的这种需要持久化数据到磁盘上的应用,都是无需指定volume的。指定volume只是为了避免用户忘记指定-v时导致的数据全部在容器中,这样的话容器一旦被删除所有的数据都丢失了。

为什么要在Docker Run 中指定卷的位置?

如果在dockerfile中指定了主机目录,这样dockerfile就不具备了可移植性了,毕竟每个人所需要映射的目录可能是不同的,那么最好的办法就是把这个权利交给每个运行这个dockerfile的人,所以才会有 run -v 主机目录:容器目录 这样的指令。

查看挂在到宿主机的目录

docker inspect  [容器Id]

介绍:https://blog.csdn.net/weixin_42620326/article/details/125324192

DockerFile的基础制作

FROM mcr.microsoft.com/dotnet/aspnet:6.0  #From【指令指定了基础镜像】  必须有一个基础镜像 
COPY ./ /app    #【通过COPY将程序集导入到基础镜像中  --> 相当于在基础镜像中添加文件】  ./ 将当前dockerfile 所在的根目录所有的文件 复制到 基础镜像容器中的app目录  [目录会自动创建]
WORKDIR /app   #WORKDIR 指令指定了工作路径 【发布项目代码文件存放目录】
ENTRYPOINT ["dotnet","app.dll"]  #指令指定了应用程序入口   容器启动后执行的命令
dotnet HTEWebApiServer.dll  

容器启动

docker run -d --name myrongqi8 -p 10002:10020  hte:v1   dotnet HTEWebApiServer.dll  --webApiServiceAddress http://0.0.0.0:10020  --serviceName htewebapiserver     --zkConfigServer w1.confandsa.zk.group.hex.com:2181,w2.confandsa.zk.group.hex.com:2181,w3.confandsa.zk.group.hex.com:2181   --zkAppRole Group-HTEWebApi --runScope Core991         --msGroup edudev --webApiHelp on   --zkTimeOut 1000000000 --mcTimeOut 1000000000 --trace off    --KPversion  2 --ser protobuf --psapp v8
posted @   蛋蛋十二月  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示