在Mac OS上运行Graphviz Docker容器时出现错误“ Docker:无效的发布选择格式”

时间:2019-03-25 11:52:08

标签: macos docker graphviz

我是docker的新手,并且是第一次使用它。

我已经安装了适用于Mac OS的Docker Desktop,并成功运行了“ Hello-world”容器。我现在正在尝试从https://hub.docker.com/r/omerio/graphviz-server运行此“ omerio / graphviz-server”(这是我真正想要Docker的目的),尽管“ docker pull omerio / graphviz-server”命令已成功完成:

devops$ docker pull omerio/graphviz-server
Using default tag: latest
latest: Pulling from omerio/graphviz-server
863735b9fd15: Pull complete 
4fbaa2f403df: Pull complete 
44be94a95984: Pull complete 
a3ed95caeb02: Pull complete 
ae092b5d3a08: Pull complete 
d0edb8269c6a: Pull complete 
Digest: sha256:02cd3e2355526a927e951a0e24d63231a79b192d4716e82999ff80e0893c4adc
Status: Downloaded newer image for omerio/graphviz-server:latest

启动容器的命令(在https://hub.docker.com/r/omerio/graphviz-server上给出):'docker run -d -p : omerio/graphviz-server'给我错误消息:

devops$ docker run -d -p : omerio/graphviz-server
docker: invalid publish opts format (should be name=value but got ':').
See 'docker run --help'.

搜索此错误消息根本不返回任何信息。我看到有问题的容器最近一次更新是在3年前-难道这是Docker不再支持的旧格式吗?

1 个答案:

答案 0 :(得分:0)

-p命令的

docker run选项在主机和容器之间绑定端口(请参阅docs),并且在大多数情况下,其用法如下:

docker run <other options> \
    -p <port on the host>:<port in the container> \
    <my_image> <args>

以您的示例为例:运行映像似乎需要一个参数(容器中的端口)。例如,让我们选择8080(这意味着端口8080将由容器内的应用程序使用)。

如果要直接在主机上(通过localhost访问它,则应将8080端口(在容器中,我们之前选择的端口)绑定到主机上的任何可用端口(假设8081),就像这样:

docker run \
    -p 8081:8080 \
    omerio/graphviz-server 8080

您现在应该可以通过8080从主机访问应用程序(容器中运行的应用程序的端口localhost:8081)。