Docker-Ubuntu-bash: ping: commande introuvable

J'ai un conteneur Docker exécutant Ubuntu que j'ai fait comme suit:

docker run -it ubuntu /bin/bash

Cependant, il ne semble pas avoir ping. Par exemple

bash: ping: command not found

Dois-je l'installer?

Semble une commande assez basique à manquer. J'ai essayé whereis ping qui ne rapporte rien.

122
demandé sur Snowcrash 2016-10-06 19:33:07

3 réponses

Les images Docker sont assez minimes, mais vous pouvez installer ping dans votre image officielle ubuntu Docker via:

apt-get update
apt-get install iputils-ping

Les Chances sont que vous n'avez pas besoin ping votre image, et que vous voulez juste l'utiliser à des fins de test. Exemple ci-dessus va vous aider.

, Mais si vous avez besoin de ping exister sur votre image, vous pouvez créer un Dockerfile ou commit le conteneur que vous avez exécuté les commandes ci-dessus dans une nouvelle image.

Commettre:

docker commit -m "Installed iputils-ping" --author "Your Name <name@domain.com>" ContainerNameOrId yourrepository/imagename:tag

Dockerfile:

FROM ubuntu
RUN apt-get update && apt-get install -y iputils-ping
CMD bash

Veuillez noter qu'il y a les meilleurs pratiques sur la création d'images docker, comme la suppression des fichiers de cache apt après et etc.

262
répondu Farhad Farahi 2016-10-31 04:53:23

Ce {[6] } est la page Docker Hub Pour Ubuntu et CE est la façon dont il est créé. Il n'a (un peu) que des paquets minimaux, donc si vous avez besoin de quelque chose de plus, vous devez l'installer vous-même.

apt-get update && apt-get install -y iputils-ping

Cependant, vous créez généralement un "Dockerfile" et le construisez:

mkdir ubuntu_with_ping
cat >ubuntu_with_ping/Dockerfile <<'EOF'
FROM ubuntu
RUN apt-get update && apt-get install -y iputils-ping
CMD bash
EOF
docker build -t ubuntu_with_ping ubuntu_with_ping
docker run -it ubuntu_with_ping

Veuillez utiliser Google pour trouver des tutoriels et parcourir les fichiers Dockerfiles existants pour voir comment ils font habituellement les choses :) par exemple, la taille de l'image doit être minimisée en exécutant apt-get clean && rm -rf /var/lib/apt/lists/* après apt-get install commande.

13
répondu NikoNyrh 2016-10-06 17:13:58

Vous pouvez également utiliser une image Docker qui a déjà ping installé, par exemple busybox :

docker run --rm busybox ping SERVER_NAME -c 2
0
répondu Ivan 2018-09-13 11:18:03