Опитвам се да създам решение за архивиране и възстановяване на контейнерите Docker, с които работим.
Имам базов образ на Docker, който съм създал, ubuntu:base
, и не искам да го възстановявам всеки път с файл на Docker, за да добавям файлове към него.
Искам да създам скрипт, който се изпълнява от хост машината и създава нов контейнер, като използва образа на Docker ubuntu:base
, и след това копира файлове в този контейнер.
Как мога да копирам файлове от хоста в контейнера?
Следният начин е доста грозен, но работи.
docker run -i ubuntu /bin/bash -c 'cat > file' < file
Решението е дадено по-долу,
root@123abc:/root# <-- get the container ID
cp thefile.txt /var/lib/docker/devicemapper/mnt/123abc<bunch-o-hex>/rootfs/root
Файлът се копира директно на мястото, където контейнерът се намира във файловата система.
Просто копирам файла директно от мястото, където се намира контейнерът, от хост машината.
Например:
Първо открийте идентификатора на контейнера:
root@**3aed62678d54**:/home#
И след това от хоста, да речем, че файлът е в домашната директория:
root@saasdock:/home/dnepangue# cp cheering_nasa.gif /var/lib/docker/aufs/mnt/**3aed62678d54**a5df47a4a00a58bb0312009c2902f8a37498a1427052e8ac454b/home/
Обратно към контейнера...
root@**3aed62678d54**:/home# ls cheering_nasa.gif