热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Dockerfile与Docker镜像

如何解决《Dockerfile与Docker镜像》经验,为你挑选了2个好方法。

我正在创建一些用于在开发机器上进行测试的docker镜像.我计划为我们的主应用程序构建一个,以及为每个外部依赖项构建一个(postgres,elasticsearch等).对于主应用程序,我正在努力编写Dockerfile或编译要托管的映像.

一方面,Dockerfile很容易随时间共享和修改.另一方面,我希望在提交新图像之前,在vim中更容易进行高级配置(自定义应用程序属性文件).

我知道我可以得到相同的结果,但我正在寻找PROS,CONS和任何方向的问题.

作为一个方面说明,我计划在所有包装了一起利用图.我对这个工具的初步印象非常积极.

谢谢!



1> Javier Corte..:

使用Dockerfile:

您有一个描述图像构建方式的"审核日志".对我来说,如果它将被用于生产管道中,这将是更基本的,因为更多的人正在工作,可维护性应该是一个优先事项.

您可以自动化图像的构建过程,这是使用系统更新更新容器的简单方法,或者是否必须参与持续交付管道.

这是一种创建容器层的更简洁方法(每个Dockerfile命令是不同的层)

更改容器并提交更改非常适合测试目的和概念测试的快速开发.但是如果你计划使用结果图像一段时间,我肯定会使用Dockerfiles.

除此之外,如果您必须修改文件并使用bash工具(awk,sed ...)进行操作,结果非常繁琐,您可以在构建过程中从外部添加任何您想要的文件.



2> 小智..:

我完全同意Javier,但是您需要了解使用dockerfile创建的一个映像可能与使用相同版本的dockerfile 1天后的映像构建不同.

也许在您的构建过程中,您自动检索应用程序或操作系统等的最新更新...

此时如果你需要重现崩溃或任何你不能依赖于dockerfile的东西.


Dockerfiles需要完全指定他们调用和包含的东西的版本,否则您将获得此处描述的不可重现的行为.如果dockerfile(或makefile,或任何构建工具)为不同的运行产生不同的结果,那么它写错了.如果构建工具从某种形式的存储库中提取,并且不能确保每次都获得相同的东西,那么存储库设计错误.
推荐阅读
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • 我创建了一个SSH密钥,当我以admin身份在GitBash中运行ssh-Tgit@gitlab.com时,我得到W ... [详细]
author-avatar
记忆的旅行者
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有