Ошибка «Docker: неверный формат публикации опций» при запуске док-контейнера Graphviz на Mac OS - PullRequest
1 голос
/ 25 марта 2019

Я совершенно новичок в докере и использую его впервые.

Я установил Docker Desktop для Mac OS и успешно запустил контейнер «Hello-world». Я сейчас пытаюсь запустить этот 'omerio / graphviz-server' с https://hub.docker.com/r/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 голосов
/ 25 марта 2019
Параметр

-p команды docker run связывает порты между хостом и контейнером (см. документы ), и его использование в большинстве случаев следующее:

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

Что касается вашего примера: кажется, что для запуска образа необходим аргумент (порт в контейнере). Давайте выберем 8080 например (это означает, что порт 8080 будет использоваться приложением внутри контейнера).

Если вы хотите получить к нему доступ непосредственно на вашем хосте (через localhost), вам следует привязать порт 8080 (в контейнере, который мы выбрали ранее) к любому доступному порту на вашем хосте (скажем, * 1014). *), вот так:

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

Теперь вы сможете получить доступ к приложению (порт 8080 приложения, запущенного в контейнере) с вашего хоста через localhost:8081.

...