Docker-Ubuntu-bash: ping: команда не найдена

у меня есть контейнер Docker под управлением Ubuntu, который я сделал следующим образом:

docker run -it ubuntu /bin/bash

однако, похоже, у него нет ping. Е. Г.

bash: ping: command not found

мне нужно установить это?

кажется, довольно основная команда отсутствует. Я пытался!--3--> который ничего не сообщает.

3 ответов


изображения Docker довольно минимальны, но вы можете установить ping в вашем официальном изображении Ubuntu docker через:

apt-get update
apt-get install iputils-ping

скорее всего, вам не нужно ping ваш имидж, а просто хотите использовать его для целей тестирования. Выше пример поможет вам.

но если вам нужно, чтобы пинг существовал на вашем изображении, вы можете создать Dockerfile или commit контейнер, в котором вы выполнили вышеуказанные команды, в новый изображение.

Commit:

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

обратите внимание, что существуют рекомендации по созданию изображений docker, таких как Очистка файлов кэша apt после и т. д.


этой это страница Docker Hub для Ubuntu и этой как это создается. В нем установлены только (несколько) минимальные пакеты, поэтому, если вам нужно что-то дополнительное, вам нужно установить его самостоятельно.

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

однако обычно вы создаете "Dockerfile" и строите его:

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

пожалуйста, используйте Google, чтобы найти учебники и просматривать существующие Dockerfiles, чтобы увидеть, как они обычно делают вещи:) например, размер изображения должен быть сведен к минимуму бег!--2--> после apt-get install команды.


в качестве альтернативы вы можете использовать образ Docker, который уже установлен ping, например busybox:

docker run --rm busybox ping SERVER_NAME -c 2