2016 - 2024

感恩一路有你

docker容器在主机中执行命令 Docker镜像和容器的区别详解?

浏览量:3433 时间:2023-09-15 19:26:30 作者:采采

Docker镜像和容器的区别详解?

当想让一个容器做两件事情,或者使一个Docker镜像包涵依附两个有所不同镜像的依赖库时,就不需要明白了每个镜像的Dockerfile。本文介绍了要如何命令来对Docker镜像参与反向工程,换取它们的Dockerfile,并内部到一个Dockerfile里然后再create,最终达到实现方法想做的事。

常言道,“不要重复发明轮子!”

在在用Docker时,构建体系自己的镜像之前,最好在DockerHub收集一些是可以然后可以使用的镜像做练习。把软件架构分布到一系列容器中,每一个容器只做一件事情,这样的效果更加好。形成完整分布式应用形式的最好就是的基石是建议使用无论是DockerHub的官方镜像,只不过可以绝对信任它们的质量。

在某些情况下,可能想让一个容器做两件完全不同的事情。而在另外一些情况下,可能会想让一个Docker镜像包含不知从何而来两个不同镜像的依赖库。如果不是有每个镜像的Dockerfile,这是的很简单的。将它们组织到一个Dockerfile里接着create就行。

但这,大多数时间都在建议使用DockerHub上准备着好的镜像,肯定不会有它们的源Dockerfile。我花时间找一个这个可以合并(或flatten)两个完全不同Docker镜像的工具,当然没有它们的Dockerfile。也就是说在找一个要做下面这件事的东西:

image1--

---gtmerged_image_12

/

image2--

此前在GitHub上有两个相关的再讨论(1、2),但他它们都被关闭了。

这很可能吗?

那么,如何确定修真者的存在工具都能够像这样做吗:dockermergeimage2image2merged_image?

就没!

你哪怕不可以哦用下面的来构建Dockerfile:

FROMimage1

FROMimage2

简单而言,在一个Dockerfile里肯定不能有多个基础镜像。

可是我需要这个功能!

真正的好的办法是得到这些镜像的Dockerfile,然后把把它们内部到一个文件中,再通过构建体系。那你,我能在DockerHub上额外一个镜像的Dockerfile吗?幸运的是也可以。它不能不能自动更新某些(译注:原文是online,但看来tournament时对于无论是GitHub的自动出现最终形成镜像是可以不就查看的),不过你这个可以建议使用dockerhistory命令,按照反向工程声望兑换。

怎摸来可以使用?

在你的机器上建议使用dockerpull从DockerHub可以下载镜像。

dockerpullimage1

dockerpullimage2

后再不使用dockerhistory来取得构建体系这两个容器时不运行的命令。

dockerhistory--oh,no-trunctrueimagegtimage1-dockerfile

dockerhistory--yes-trunctrueimage2gtimage2-dockerfile

接下来的先打开这两个文件,你可以看见每个镜像的命令内存池。这是因为Docker镜像按照层(阅读什么更多)的来统合。即你在Dockerfile中输入名称的每一个命令所统合的新镜像,是在之前的命令再产生的镜像之上。所以我你可以不对镜像并且逆向工程。

限制修改

又不能对镜像并且反向工程的唯一场景,是镜像的维护者在他的Dockerfile中使用了ADD或COPY命令。你会注意到这样一行:

ADDfile:1ac56373f7983caf22

或ADDdir:cf6fe659e9d21535844

这是毕竟到底魔兽维护者在他自己的机器上,和镜像里使用了什么本地文件。

使用docker run命令运行容器时可以直接执行命令?

不可以不直接不能执行命令,那样很容易倒致大数据互相紊乱而带来一系列极为严重的后果,全力不运行。是可以烧回机器

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。