Когда я пытаюсь df -h
для контейнера busybox, я получаю следующие результаты:
$ docker run -it busybox du -h
# expected results
Что мне нужно, так это вывод df -b
, который дает мне следующее:
$ docker run -it busybox du -b
du: invalid option -- b
BusyBox v1.30.0 (2018-12-31 18:16:17 UTC) multi-call binary.
Usage: du [-aHLdclsxhmk] [FILE]...
Summarize disk space used for each FILE and/or directory
-a Show file sizes too
-L Follow all symlinks
-H Follow symlinks on command line
-d N Limit output to directories (and files with -a) of depth < N
-c Show grand total
-l Count sizes many times if hard linked
-s Display only a total for each argument
-x Skip directories on different filesystems
-h Sizes in human readable format (e.g., 1K 243M 2G)
-m Sizes in megabytes
-k Sizes in kilobytes (default)
Поскольку многие стандартные утилиты обрезаны на изображении busybox или не существуют, поведение неудивительно. На странице занятого dockerhub предлагает :
FROM busybox
COPY ./my-static-binary /my-static-binary
CMD ["/my-static-binary"]
Итак, я создал Dockerfile со следующим содержимым, пытаясь скопировать мой двоичный файл Ubuntu 16.04 du
в образ:
FROM busybox
COPY /usr/bin/du /bin/du
CMD ["/bin/du", "-b"]
Но когда я пытаюсь docker build
, я получаю следующую ошибку:
$ docker build .
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM busybox
---> 3a093384ac30
Step 2/3 : COPY /usr/bin/du /bin/du
COPY failed: stat /var/lib/docker/tmp/docker-builder362173879/usr/bin/du: no such file or directory
Я не знаю, является ли это правильным способом добавления утилит к таким минимальным изображениям, но я был бы признателен, если бы вы сообщили мне, каким образом такие утилиты, как (завершено) du
, curl
и т. Д. быть добавленным, поскольку нет такого менеджера пакетов, как apt
.