Я следую инструкциям на веб-сайте Docker по созданию родительского изображения .Я очень новичок в Докере.Я на CentOS 7.5.
Я запустил скрипт mkimage-yum.sh , предложенный на веб-сайте Docker для CentOS.Я не понял, почему последняя строка скрипта, rm -rf "$target"
, была там, потому что она, кажется, удаляет всю работу, выполненную скриптом.Поэтому я закомментировал его, и он оставляет каталог /tmp/mkimage-yum.sh.ahE8xx
, который выглядит как минимальное изображение linux с типичной файловой структурой linux (например, /usr/
, /etc/
)
Inмой домашний каталог, я скомпилировал программу,
main.c
:
#include <stdio.h>
#include <stdlib.h>
int main(void){
printf("Hello Docker World!\n");
return 0;
}
Используя gcc -static -static-libgcc -static-libstdc++ -o hello main.c
, я скомпилировал код в статически связанный исполняемый файл, как это предписанона веб-странице докера.
Я создал
Dockerfile
,
Например
FROM scratch
ADD hello /
CMD ["/hello"]
Я запускаю сервер
dockerd
и на отдельном терминале запускаю
docker build --tag hello .
Вывод:
Sending build context to Docker daemon 864.8 kB
Step 1/3 : FROM scratch
--->
Step 2/3 : ADD hello /
---> Using cache
---> a38d49d40e50
Step 3/3 : CMD /hello
---> Using cache
---> 3bcbb04c367f
Successfully built 3bcbb04c367f
Ну и дела свист, похоже, этоработал!Тем не менее, я все еще вижу только Dockerfile hello main.c
в каталоге, я сделал это.Докер явно думает, что он что-то сделал, но что?Новые файлы не создавались.
Теперь я запускаю
docker run --rm hello
и выдает
Hello Docker World!
.
Однако я получаю смущающие ошибки от сервера dockerd
:
ERRO[502548] containerd: deleting container error=exit status 1: "container f336b3a5505879453b4f7a00c06acf274d0a5f8b3d260762273a2d7c0a846141 does not exist\none or more of the container deletions failed\n"
WARN[502548] f336b3a5505879453b4f7a00c06acf274d0a5f8b3d260762273a2d7c0a846141 cleanup: failed to unmount secrets: invalid argument
ВОПРОСЫ :
Что именно docker build --tag hello .
сделал?Я не вижу выхода из этого.
Что такое ошибки dockerd
?Может быть, вы ищете изображение докера, не созданное docker build
?
Как mkimage-yum.sh
вписывается в это?Почему он удаляет всю работу, которую он делает в конце.