docker容器共享宿主机环境(目录挂载)

这篇具有很好参考价值的文章主要介绍了docker容器共享宿主机环境(目录挂载)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景介绍
  如果开发的服务均需要将打成docker镜像,可是随着服务越来越多,镜像也越来越多。每次制作镜像的时候都需要将依赖打进容器,这样一个jre的环境就是100多M。有一天突发奇想,容器能不能共用宿主机的环境?这样每次打镜像时体积就会少不少。
二、测试
  我们测试用的是java的web项目做的测试,框架用的springboot,由于集成了tomcat插件,所以web项目打成jar包即可运行。
  1、在宿主机上安装jdk环境,目录在/home/softwares/jdk1.8.0_151。
  2、制作没有jdk环境的镜像。
  Dockerfile文件内容如下:


From debian:latest
  ADD springWeb.jar /app.jar
  ENV JAVA_HOME=“/home/softwares/jdk1.8.0_151”
  ENV PATH=“ P A T H : {PATH}: PATH:{JAVA_HOME}/bin:${JAVA_HOME}/sbin”
  ENTRYPOINT [ “java”, “-jar”, “/app.jar” ]


以上镜像是没有jdk环境的,所以在生成容器的时候一定要把宿主机jdk目录挂载到容器中。
  3、生成镜像
  docker build -t jdktest .
  注释:jdktest是镜像的名字。
  4、生成容器
  docker run -d --name jdktest -p 8088:8081 -v /home/softwares:/home/softewares --restart=always jdktest
  5、打开8088端口,然后用浏览器访问项目地址,成功!
三、优点
  1、它的优点很明显,减少许多镜像体积。
    debian系统有的只有5M不到,加上自己的一个jar包,镜像可能也就30M不到。而一个jre1.8的环境就得100多M。可以所体积减少很多。
四、缺点
  1、增加了容器对宿主机的依赖性。
    一旦宿主机的运行环境进行升级或改动,必定影响容器的运行。
  2、增加了新人交接的难度。
    生成容器时必须要将宿主机的运行环境目录挂载到容器中,也就是上面的 -v /home/softwares:/home/softewares操作。若没有此操作,容器是生成后就退出了。若进
   行新人交接时,他不知道要进行环境目录挂载,后面就GG了。
 

本文转自https://blog.csdn.net/lu_1110/article/details/106533180,如有侵权,请联系删除。文章来源地址https://www.toymoban.com/news/detail-492414.html

到了这里,关于docker容器共享宿主机环境(目录挂载)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker】数据卷挂载以及宿主机目录挂载的使用

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起

    2024年01月16日
    浏览(34)
  • docker搭建nginx并且挂载宿主机目录

    1、安装docker,这里就不赘述了 2、查看nginx版本 3、设置nginx对外的挂载目录 4、拷贝一份nginx.conf文件到/root/docker/nginx/conf/目录下 5、拉取相应的docker镜像 6、搭建nginx服务器 7、搭建完成之后查看容器的运行状态 8、至此,nginx就搭建完成了!!

    2024年02月11日
    浏览(30)
  • Docker之宿主机与容器之间的文件复制与挂载

    宿主机与容器之间的文件挂载与复制 1、从宿主机复制到容器命令格式为:       docker cp 宿主机的本地地址 容器名/容器ID:容器路径  先在宿主机里面创建一个666.txt的文件,然后docker cp 命令把文件复制到容器中。 2、从容器复制到宿主机命令格式:      docker cp 容器名字

    2024年02月13日
    浏览(46)
  • 解决docker通过volumes挂载文件,宿主机修改后容器内不同步,重启服务才能同步

    将文件的权限改为777,即 chmod 777 filename 。 详细解释在该文章: https://huaweicloud.csdn.net/633114e5d3efff3090b51a5a.html 说明: 这是由于linux系统文件挂载机制导致的。 docker通过volumes挂载文件到容器中,有以下两种方式: 1、挂载目录 2、挂载具体文件:并不是挂载了某个文件的路径,

    2024年03月10日
    浏览(47)
  • k8s 目录和文件挂载到宿主机

    k8s生产中常用的volumes挂载方式有:hostPath、pv,pvc、nfs 1.hostPath挂载      hostPath是将主机节点文件系统上的文件或目录挂载到Pod 中,同时pod中的目录或者文件也会实时存在宿主机上,如果pod删除,hostpath中的文件不会被删除。( 生成的pod只能在同一个节点上 ,调度到其他节

    2024年01月19日
    浏览(36)
  • docker与宿主机共享内存通信

    docker中的进程要与宿主机使用共享内存通信,需要在启动容器的时候指定 “–ipc=host” 选项。然后再编写相应的共享内存的程序,一个跑在宿主机上,另一个跑在docker上面。 shm_data.h shm_slave.c makefile shm_data.h shm_master.c makefile Dockerfile 运行时需要先下载docker,获取支持c语言编译

    2024年02月07日
    浏览(33)
  • Docker】容器里面拷文件到宿主机[或]宿主机拷文件到容器里面

    【Docker】容器里面拷文件到宿主机[或]宿主机拷文件到容器里面 - 知乎 答:在宿主机里面执行以下命令 docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 示例: 假设容器名为webnphp,要从容器里面拷贝的文件路为: 现在要将tox.ini从容器里面拷到宿主

    2024年02月06日
    浏览(47)
  • 【Docker】docker容器内获取宿主机的信息和执行宿主机的脚本

    我们可以通过在容器内远程连接宿主机,然后对宿主机进行操作。 注意: 要先安装 sshpass命令才行。 Dockerfile文件可以在你部署容器的时候自动安装。 docker部署springboot项目

    2024年02月11日
    浏览(47)
  • docker简介以及docker安装redis、mysql并实现数据挂载宿主机

    1、简介 官网 docker官网:http://www.docker.com 仓库 Docker Hub官网: https://hub.docker.com/ 2、前提 2.1 前提条件: Docker必须部署在Linux内核的系统上 目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS 7 (64-bit)上, 要求系统为64位、Linux系统内核版本为 3.8以上 2.2查看自己的内核

    2024年02月04日
    浏览(37)
  • docker 容器与宿主机时间同步

    1.docker run 2.Docker file 3.docker-compose 4.宿主机直接执行命令给某个容器同步时间 注意:这种方式需要重启容器 docker exec -it 70ec41893d66 /bin/bash 回车后输入date验证即可

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包