构建docker映像时,我的docker文件中有如下行
FROM realyunlong/cv_image
FROM nvidia/cuda:8.0-cudnn6-devel-ubuntu16.04
docker images
的输出:
REPOSITORY TAG IMAGE ID CREATED SIZE
v1 latest 1786f4752d3c 44 minutes ago 3.73GB
<none> <none> dd1523103796 About an hour ago 9.83GB
nvidia/cuda 8.0-cudnn6-devel-ubuntu16.04 8d377158a37d 12 days ago 1.99GB
hello-world latest e38bc07ac18e 2 months ago 1.85kB
realyunlong/cv_image latest 4f1b6063ff55 12 months ago 3.37GB
我的理解是,v1是我项目的docker映像,它依赖于其他预构建的映像,例如realyunlong/cv_image
和nvidia/cuda
。
(我不知道none:none
是什么)
如何将图片推送到我的私人仓库中? 如果将v1推送到存储库,是否会处理所有其他图像依赖项?
答案 0 :(得分:0)
如果您docker push v1:latest
将推送完整的图像及其所有相关代码;但不会在这些基础图像碰巧附带的名称处记录下来。
因此,如果您移动到另一台计算机并运行docker pull v1:latest
然后运行docker images
,则会看到v1
图像,但看不到其FROM
图像列出,并且如果您尝试直接docker run
那个基础映像或docker build
来自同一基础的另一个映像,它将从Docker Hub(或任何地方)中拉出。
答案 1 :(得分:0)
将映像推送到存储库(私有或公共)时,它包含您选择要包含在其内部版本中的任何内容。如果您从Dockerfile
开始构建图片,例如nvidia/cuda
,其中包括nvidia/cuda
所包含的内容以及您对其进行的所有添加。
但是,如果要在新环境中重建映像,则将需要旧环境中的所有内容。
推送到私有存储库与推送到公共存储库实际上没有什么不同,除了必需的身份验证。