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

docker run -it ubuntu /bin/bash

, однако, похоже, у него нет ping. Например,

bash: ping: command not found

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

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

Snowcrash

Ответов: 7

Ответы (7)

Образы Docker довольно минимальны, но вы можете установить ping в свой официальный образ докера ubuntu через:

apt-get update
apt-get install iputils-ping

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

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

Фиксация:

docker commit -m "Installed iputils-ping" --author "Your Name " ContainerNameOrId yourrepository/imagename:tag

Dockerfile:

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

Обратите внимание, что существуют передовые методы создания образов докеров, такие как последующая очистка файлов кэша APT и т. Д.

Каждый раз, когда вы получаете такую ​​ошибку

bash: : command not found
  • На хосте, на котором эта команда уже работает с этим решением:

    dpkg -S $ (который <команда>)
    
  • У вас нет хоста с установленным пакетом?Попробуйте это:

    поиск apt-файла / bin / <команда>
    

Я использовал приведенную ниже инструкцию в debian 10

apt-get install iputils-ping

Иногда минимальная установка Linux в Docker не определяет путь, и поэтому необходимо вызвать ping, используя ....

cd /usr/sbin
ping 

Обычно люди извлекают официальный образ Ubuntu / CentOS, но не понимают, что эти образы минимальны и не имеют ничего сверх того.

Для Ubuntu этот образ собран из официальных архивов rootfs, предоставленных Canonical. Учитывая, что это минимальная установка Ubuntu, этот образ по умолчанию включает только локали C, C.UTF-8 и POSIX.

• 100001 100002 *

Ниже приведен пример файла Dockerfile, при создании образа из него он будет включать следующие инструменты:

FROM vkitpro/ubuntu16.04
RUN     apt-get  update -y \
&& apt-get upgrade -y \
&& apt-get install iputils-ping -y \
&& apt-get install net-tools -y \
CMD bash

или запустите контейнер из базового образа и установите эти утилиты в контейнер, а затем зафиксируйте в образе. docker commit -m "любое описательное сообщение" ID_контейнера имя_образа: lattest

В этом образе все будет установлено.

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

docker run --rm busybox ping SERVER_NAME -c 2

Это страница 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, чтобы найти руководства и просмотреть существующие файлы Docker, чтобы увидеть, как они обычно работают :) Например, размер образа следует минимизировать, запустив apt-get clean && rm -rf / var / lib / apt / lists / * после команд apt-get install.

2022 WebDevInsider