如果没有找到具有该名称的本地图像,我如何告诉 docker 从本地图像创建容器,而不查看 docker 集线器?
How can I tell docker to create a container from a local image, without looking at the docker hub if no local image is found with that name?
我正在尝试解决我认为的安全问题。如果我正在做一个我称之为“示例”的项目,我可以使用 docker build -t example .
从它构建一个 docker 图像,然后使用 docker run example
运行 它。这将正常工作,但如果我忘记先构建,或者如果我 docker rmi
图像而不重建,那么 docker 将查询 docker hub,并且 运行 该图像代替.
我相信 docker 图像集线器我已经知道(例如,我很乐意 运行 docker run nginx
或 docker run postgres
),但是如果我忘记构建本地 docker 图像,我担心会意外 运行ning 任意远程图像。
我知道我可以将我的本地图像命名为一些深奥的东西,这样就不太可能发生碰撞,但这感觉就像默默无闻的安全。
使用您控制的注册表或存储库命名您的图像。换句话说,不要 运行:
docker build -t example .
因为它会扩展到您无法控制的 Docker 官方图片库(又名 docker.io/library/)。但是您可以在 Hub 上创建自己的用户帐户,这样您就可以:
docker build -t ${your_hub_id}/example .
这样任何本地不存在的图像都会尝试从 Hub 上的命名空间中提取。
您不必为您的图像命名一些深奥的东西。
使用命名空间
只需在 docker 集线器上注册一个命名空间,然后在您的图像名称中使用它。例如,我在 Docker Hub 上 larsks
。除了我,没有人可以在 larsks
命名空间中创建图像,因此如果我将本地图像命名为 larsks/example
,我知道除非我将它放在那里,否则它永远不会在 Docker Hub 上解析。
使用虚假的注册表名称
也许您不想在 Docker Hub 上注册。
回想一下,图像名称的完全限定形式是 registry/namespace/repository:tag
。如果您使用不存在的注册表命名本地图像,Docker 将无法从任何地方提取它们。例如,如果我命名某物 dne/larsks/example
(dne
就像“不存在”一样,但任何有效但不是有效主机名的东西),Docker 将永远无法提取此图像.
我正在尝试解决我认为的安全问题。如果我正在做一个我称之为“示例”的项目,我可以使用 docker build -t example .
从它构建一个 docker 图像,然后使用 docker run example
运行 它。这将正常工作,但如果我忘记先构建,或者如果我 docker rmi
图像而不重建,那么 docker 将查询 docker hub,并且 运行 该图像代替.
我相信 docker 图像集线器我已经知道(例如,我很乐意 运行 docker run nginx
或 docker run postgres
),但是如果我忘记构建本地 docker 图像,我担心会意外 运行ning 任意远程图像。
我知道我可以将我的本地图像命名为一些深奥的东西,这样就不太可能发生碰撞,但这感觉就像默默无闻的安全。
使用您控制的注册表或存储库命名您的图像。换句话说,不要 运行:
docker build -t example .
因为它会扩展到您无法控制的 Docker 官方图片库(又名 docker.io/library/)。但是您可以在 Hub 上创建自己的用户帐户,这样您就可以:
docker build -t ${your_hub_id}/example .
这样任何本地不存在的图像都会尝试从 Hub 上的命名空间中提取。
您不必为您的图像命名一些深奥的东西。
使用命名空间
只需在 docker 集线器上注册一个命名空间,然后在您的图像名称中使用它。例如,我在 Docker Hub 上 larsks
。除了我,没有人可以在 larsks
命名空间中创建图像,因此如果我将本地图像命名为 larsks/example
,我知道除非我将它放在那里,否则它永远不会在 Docker Hub 上解析。
使用虚假的注册表名称
也许您不想在 Docker Hub 上注册。
回想一下,图像名称的完全限定形式是 registry/namespace/repository:tag
。如果您使用不存在的注册表命名本地图像,Docker 将无法从任何地方提取它们。例如,如果我命名某物 dne/larsks/example
(dne
就像“不存在”一样,但任何有效但不是有效主机名的东西),Docker 将永远无法提取此图像.