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

Ubuntu 如何创建现有docker映像的副本,ubuntu,docker,debian,dockerfile,Ubuntu,Docker,Debian,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

我尝试使用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

如何在本地创建debian或ubuntu的基本映像,并在其上构建一些测试映像,而不干扰基本映像,这样我就不必再次下载基本docker映像,并且可以多次使用新下载的映像?

只需编写一个Dockerfile,从以下内容开始:

FROM debian:latest
...
(使用)

这将创建一个基于debian的本地映像,因为debian已经下载,所以不会再下载

注意:最好避免使用“最新”标记:请参阅“由堆栈溢出贡献者执行”。
使用实际标签更精确:

docker pull debian:7.8 docker拉debian:喘息

如果我想在ubuntu中做点什么,有没有办法:我只需执行命令
docker copy“image\u name”
,然后做我想做的任何事情(运行image,克隆一些git repo,安装一些包,测试它),然后删除它
docker rmi“image\u name”
(当我处理完image之后)


是:您可以
docker运行--it bash
(包含
bash
)并退出该bash的fomr图像:您的容器将退出:然后您可以
docker提交新图像
,您将获得原始图像的副本。

您使用命令“docker images”列出的图像可以重复使用。这里有两种方法可以扩展或重用基本映像,而无需再次下载

1.使用Dockerfile, 在Dockerfile中,您可以将指令“FROM REPOSITORY\u NAME:TAG\u NAME”作为第一行,以重用已下载的基本映像

FROM REPOSITORY_NAME:TAG_NAME
在“docker images”命令输出中,第一列给出存储库名称,第二列给出标记名称

您可以进一步在Dockerfile中添加更多指令并构建它

2.使用Docker提交功能(不像Dockerfile方法那么简单) a。从基础映像启动容器

FROM REPOSITORY_NAME:TAG_NAME
b。登录到容器,在需要时对容器进行更改,如安装其他RPM等

c。提交在基础映像上创建的新映像的结果

docker commit -m "installed wireshark" -a "admin" "container-id" "your_repository_name"/"user_name":"New_TAG"

d。运行“docker images”命令,您可以看到新图像(它是在现有已下载图像的基础上准备的)

谢谢您的回答,它满足了我的需要。只是一个小问题,有没有像“docker copy”image name这样的命令,我们可以开始处理那个图像?@proton1h1的“start working”,你的意思是运行它吗?或者添加新指令(在这种情况下,这就是Dockerfile的用途)是的,Dockerfile会做我想做的事情,但以防万一:如果想在ubuntu中做点什么,有没有办法:我只需执行命令
docker copy“image\u name”
,然后做任何我想做的事情(运行镜像,克隆一些git repo,安装一些包,测试它),然后只需删除它
dockerrmi“image\u name”
(当我处理完图像时)。Dockerfile将为我做同样的事情,这是一个很好的方式,但是有这样的命令吗?目前还没有像“docker copy”这样的命令可以允许将一个图像复制到另一个图像。您可以使用docker保存和导出功能,当您希望在其他docker主机中使用保存的docker映像时,该功能非常有用。另一种方法是将“docker文件”逻辑(例如“FROM ubuntu:14.04”)包装在shell脚本中,该脚本将生成基本映像的副本。@proton1h1您可以尝试使用docker提交:查看我编辑的答案。