OpenShift oc new-app IMAGE 与 oc new-app --docker-image

OpenShift oc new-app IMAGE versus oc new-app --docker-image

基于 Docker 图像在 OpenShift 上创建新应用程序的语法有点混乱:

Usage:
  oc new-app (IMAGE | IMAGESTREAM | TEMPLATE | PATH | URL ...) [options]
. . .
Options:
  . . . 
  --docker-image=[]: Name of a Docker image to include in the app.
  . . .

将 docker 图像指定为 IMAGE 参数与在 --docker-image 选项中指定图像有什么区别?

假设我的图像在 docker 集线器 (docker.io) 中,它是 myid/myrepo:latest。下面的命令是创建应用程序的正确方法吗?

oc new-app myid/myrepo:latest --docker-image="docker.io/myid/myrepo:latest"

我正在使用 OpenShift v1.3.0。

因为 oc new-app 重载了参数 in:

(IMAGE | IMAGESTREAM | TEMPLATE | PATH | URL ...)

有时会因为算法中的优先顺序而无法选择您要查找的匹配项。 --docker-image 选项允许您明确说明您想要什么,并绕过 oc new-app 试图推断您想要什么。您不需要同时提供两者,因此通常可以使用其中任何一个:

oc new-app myid/myrepo:latest
oc new-app --docker-image myid/myrepo:latest

如果图像在 Docker Hub Registry 上,您应该可以删除 docker.io,因为默认情况下会在那里搜索。只有在使用备用注册表时才需要注册表的主机名部分。