如何创建现有 docker 映像的副本

mur*_*mit 6 ubuntu debian docker dockerfile

我尝试使用 docker 一段时间了,这些是我下载的 docker 镜像。

debian                 latest    8c00acfb0175        2 weeks ago         125.2 MB
sameersbn/postgresql   latest    1da0f78d061e        3 weeks ago         231.6 MB
ubuntu                 latest    91e54dfb1179        5 weeks ago         188.4 MB
docker/whalesay        latest    fb434121fc77        4 months ago        247 MB
sameersbn/postgresql   9.4       271ad7e099d3        7 months ago        228.2 MB
Run Code Online (Sandbox Code Playgroud)

我怎样才能在本地拥有 debian 或 ubuntu 的基础镜像,并在它们之上构建一些测试镜像而不干扰基础镜像,这样我就不必再次下载基础 docker 镜像,并且可以使用多个新下载的镜像时间 ?

Von*_*onC 4

只需编写一个以以下内容开头的 Dockerfile:

FROM debian:latest
...
Run Code Online (Sandbox Code Playgroud)

(使用FROM指令

这将创建一个基于 debian 的本地镜像,并且由于 debian 已经下载,因此不会再次下载。

注意:最好避免使用“最新”标签:请参阅Stack Overflow 贡献者Adrian Mouat的“ Docker:最新的混乱” 。 使用实际标签更精确:

docker pull debian:7.8
docker pull debian:wheezy
Run Code Online (Sandbox Code Playgroud)

如果想在 ubuntu 中做某事,有一种方法:我只需执行命令docker copy "image_name",然后做任何我想做的事情(运行图像,克隆一些 git 存储库,安装一些包,测试它),然后删除它docker rmi "image_name"(当我'我完成了图像)。

是的:您可以docker run --it <image> bash(对于包含 的图像bash),然后退出该 bash:您的容器将退出:您可以docker commit <containerrid> newimage,然后您将获得原始图像的副本。