从Dockerfile创建Docker基本映像?

以利

我有一个运行中的docker映像正在运行我的应用程序,但是存在一个问题,每当我添加新的依赖项时,都必须重新安装所有依赖项。糟透了。我知道我可以通过将依赖项放在单独的行中来解决此问题,但这很笨拙,并且如果我想从其他位置构建,则不那么可移植。我更愿意做的是根据我现在知道的需求制作一个基础映像(特别是那些需要花费很长时间安装的映像),然后仅以此为基础构建所有新映像,这样我就可以缩短构建时间从任何机器上。那么,所有这些都说明了,从Dockerfile创建基础映像的好方法是什么,或者有更好的方法来实现我正在寻找的可移植性和快速的构建时间?

乌斯曼·伊斯梅尔

任何docker映像都是基本映像。您可以使用from tag从存储库中构建或提取的任何图像作为基础图像。

正在进行一些工作(Docker问题332),它可以使基本映像变平以便更快地下载,但是尚不完整。只要您没有在基本映像中定义任何端口和卷,就可以使用所罗门在此问题的评论中建议的hack,即

当前,“挤压”图像的唯一方法是从中创建一个容器,将该容器导出到原始tarball中,然后将其重新导入为图像。不幸的是,这将导致所有图像元数据丢失,包括其历史记录以及端口,env,默认命令,维护者信息等。--Solomon Hykes

为此,您可以运行:

# Run a NOOP command that creates a container
container_id=$(docker run -d <BASE-CONTAINER> ls)

# Run export the image as a tarball
docker export $container_id > image.tar

# Import the image into a new container
cat image.tar | docker import - yourname/BASE:TAG

# Now you can use ```from yourname/BASE:TAG``` in your docker files.
# Or you can push to dockerhub with the following 
# commands so you can use on other machines
docker login
docker push yourname/BASE:TAG

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

创建一个Docker基本映像

来自分类Dev

Dockerfile与Docker映像

来自分类Dev

由于权限被拒绝错误,无法从Docker映像创建Dockerfile

来自分类Dev

Docker:基本映像

来自分类Dev

从Dockerfile构建Docker映像的问题

来自分类Dev

docker基本映像:如何升级

来自分类Dev

Docker基本映像未运行

来自分类Dev

Docker映像创建

来自分类Dev

为Ruby On Rails环境创建Docker映像时出错(来自Dockerfile)

来自分类Dev

创建在Dockerfile中用作FROM时从目录复制文件夹的Docker映像

来自分类Dev

如何使用包含数据库创建的dockerfile构建docker映像

来自分类Dev

创建不带源映像(OS)的Docker映像

来自分类Dev

如何从Docker映像复制文件-dockerfile cmd

来自分类Dev

在Docker中创建映像失败

来自分类Dev

无法创建Dedeno Docker映像

来自分类Dev

创建Docker UAT /生产映像

来自分类Dev

Docker中基本映像的性能影响

来自分类Dev

Docker基本映像,它们由什么组成?

来自分类Dev

docker:不覆盖基本映像入口点

来自分类Dev

Docker中基本映像的性能影响

来自分类Dev

带有入口点的Dockerfile仅来自基本映像

来自分类Dev

标记Docker映像会创建该映像的副本吗?

来自分类Dev

带有make的Docker:更改Dockerfile上的映像

来自分类Dev

使用不同的dockerfile从源目录构建docker映像

来自分类Dev

使用以下dockerfile构建docker映像时出错

来自分类常见问题

如何为Docker创建自己的基础映像?

来自分类Dev

从映像创建Docker容器而不启动它

来自分类Dev

如何从当前系统创建docker映像?

来自分类Dev

在PostgreSQL Docker映像中创建表