Je suis complètement nouveau dans Docker et je l'utilise pour la première fois.
J'ai installé Docker Desktop pour Mac OS et exécuté avec succès le conteneur "Hello-world". J'essaie maintenant d'exécuter ce 'omerio/graphviz-server' de https://hub.docker.com/r/omerio/graphviz-server (ce pour quoi je veux vraiment Docker) et bien que la commande 'docker pull omerio/graphviz-server' se termine avec succès:
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
la commande pour démarrer le conteneur (donnée sur https://hub.docker.com/r/omerio/graphviz-server ): 'docker run -d -p : omerio/graphviz-server'
me donne le message d'erreur:
devops$ docker run -d -p : omerio/graphviz-server
docker: invalid publish opts format (should be name=value but got ':').
See 'docker run --help'.
La recherche de ce message d'erreur ne renvoie aucune information. Je constate que le conteneur en question a été mis à jour pour la dernière fois il y a plus de 3 ans - pourrait-il s'agir d'un ancien format que Docker ne prend plus en charge?
L'option -p
De la commande docker run
Lie les ports entre l'hôte et le conteneur (voir docs ), et son utilisation est la plupart du temps la suivante:
docker run <other options> \
-p <port on the Host>:<port in the container> \
<my_image> <args>
Quant à votre exemple: il semble que l'exécution de l'image nécessite un argument (le port dans le conteneur). Choisissons par exemple 8080
(Cela signifie que le port 8080
Sera utilisé par l'application à l'intérieur du conteneur).
Si vous souhaitez y accéder directement sur votre hôte (via localhost
), vous devez lier le port 8080
(Dans le conteneur, le port que nous avons choisi précédemment) à n'importe quel port disponible sur votre hôte (disons dites 8081
), comme ceci:
docker run \
-p 8081:8080 \
omerio/graphviz-server 8080
Vous devriez maintenant pouvoir accéder à l'application (port 8080
De l'application en cours d'exécution dans le conteneur) depuis votre hôte via localhost:8081
.