在 Mac Os 上运行 Graphviz docker 容器时出现错误“Docker: invalid publish opts format”

Ste*_*ves 5 macos graphviz docker

我对 docker 完全陌生,并且是第一次使用它。

我已经为 Mac OS 安装了 Docker 桌面并成功运行了“Hello-world”容器。我现在正在尝试从https://hub.docker.com/r/omerio/graphviz-server(这是我真正想要 Docker 的)运行这个“omerio/graphviz-server” ,尽管“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
Run Code Online (Sandbox Code Playgroud)

启动容器的命令(在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'.
Run Code Online (Sandbox Code Playgroud)

搜索此错误消息根本不会返回任何信息。我看到有问题的容器上次更新是在 3 年前 - 它可能是 Docker 不再支持的旧格式吗?

nor*_*bjd 3

-pdocker run命令选项绑定主机和容器之间的端口(请参阅文档),其用法大多数情况如下:

docker run <other options> \
    -p <port on the host>:<port in the container> \
    <my_image> <args>
Run Code Online (Sandbox Code Playgroud)

至于你的例子:运行图像似乎需要一个参数(容器中的端口)。让我们选择8080例如(这意味着8080容器内的应用程序将使用端口)。

如果您想直接在主机上访问它(通过localhost),您应该将8080端口(在容器中,我们之前选择的端口)绑定到主机上的任何可用端口(比方说8081),如下所示:

docker run \
    -p 8081:8080 \
    omerio/graphviz-server 8080
Run Code Online (Sandbox Code Playgroud)

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