Tengo un contenedor Docker que ejecuta Ubuntu, que hice de la siguiente manera:
docker run -it ubuntu /bin/bash
Sin embargo, no parece tener ping. P.ej
bash: ping: command not found
¿Necesito instalar eso?
Parece que falta un comando bastante básico. Intenté whereis pinglo que no informa nada.

Respuestas:
Las imágenes de Docker son bastante mínimas, pero puedes instalarlas
pingen tu imagen oficial de Docker de ubuntu a través de:Es probable que no necesite
pingsu imagen y solo quiera usarla para fines de prueba. El ejemplo anterior te ayudará.Pero si necesita que exista ping en su imagen, puede crear uno
Dockerfileocommitel contenedor en el que ejecutó los comandos anteriores en una nueva imagen.Cometer:
Dockerfile:
Tenga en cuenta que existen prácticas recomendadas para crear imágenes acoplables, como borrar archivos de caché de apt después, etc.
fuente
Temporary failure resolving 'security.ubuntu.com'obviamente porque la red no está presente.Esta es la página de Docker Hub para Ubuntu y así es como se crea. Solo tiene (mínimo) paquetes mínimos instalados, por lo tanto, si necesita algo adicional, debe instalarlo usted mismo.
Sin embargo, generalmente crearía un "Dockerfile" y lo crearía:
Por favor, utilizar Google para encontrar tutoriales y Dockerfiles Buscar existentes para ver cómo se suelen hacer cosas :) Por ejemplo, tamaño de la imagen debe reducirse al mínimo mediante la ejecución
apt-get clean && rm -rf /var/lib/apt/lists/*después deapt-get installcomandos.fuente
echo -een realidad desafía el estándar POSIX sh , que no le permite hacer nada más que imprimir-een su salida. (Incluso con algunas versiones de bash, ese es el comportamiento predeterminado). Use en suprintflugar:printf '%s\n' "FROM ubuntu" "RUN apt-get update && apt-get install -y iputils-ping" "CMD bash"y vea la sección USO DE APLICACIONES del documento de estándares vinculado anteriormente.echo -ela forma en que lo espera (sino que tendrá un comportamiento compatible con los estándares) cuando se compile con el modo POSIX--enable-xpg-echo-defaulto con las variables de entorno apropiadas u otra configuración de tiempo de ejecución.-ncomo primer argumento, o cuando hay literales de barra invertida, pero aun así, está definido por la implementación , no está garantizado por el estándar, por lo que el comportamiento depende del shell individual en uso).En general, las personas obtienen la imagen oficial de Ubuntu / CentOS, pero no se dan cuenta de que estas imágenes son mínimas y no tienen nada más.
Para Ubuntu, esta imagen está construida a partir de tarballs rootfs oficiales proporcionados por Canonical. Dado que es una instalación mínima de Ubuntu, esta imagen solo incluye las configuraciones regionales C, C.UTF-8 y POSIX de forma predeterminada.
Uno puede instalar net-tools (incluye ifconfig, netstat), ip-utils (incluye ping) y otros me gusta curl, etc. en el contenedor y puede crear una imagen desde el contenedor o puede escribir Dockerfile que instalará estas herramientas mientras crea la imagen.
A continuación se muestra el ejemplo de Dockerfile, al crear una imagen a partir de esto, incluirá estas herramientas:
o inicie el contenedor desde la imagen base e instale estas utilidades en el contenedor y luego confirme la imagen. docker commit -m "cualquier mensaje descriptivo" id_contenedor nombre_imagen: lattest
Esa imagen tendrá todo instalado.
fuente
Alternativamente, puede usar una imagen Docker que ya tiene ping instalado, por ejemplo busybox :
fuente
apt-get iputils-pingla imagen que lo necesita.Cada vez que tienes este tipo de error
En un host con ese comando que ya funciona con esta solución :
¿No tienes un host con ese paquete instalado? Intenta esto :
fuente
A veces, la instalación mínima de Linux en Docker no define la ruta y, por lo tanto, es necesario llamar al ping usando ...
fuente
He usado la siguiente declaración en Debian 10
fuente