Как я могу сохранить данные и программное обеспечение в контейнере Docker навсегда?
Я использую изображение докера opencv от https://hub.docker.com/r/andrewssobral/bgslibrary_opencv3/ автора andrewssobral.
Сначала я инициализировал контейнер изображения, набрав команду:
Окно запуска -it -p 5901:5901 andrewssobral/bgslibrary_opencv3 bash
И я попытался установить Vim из командной строки:
apt-get install vim
Но когда я использую выход COMMAND, чтобы выйти из контейнера, и снова запускаю его, vim был удален.
Итак, как мне установить vim или другое программное обеспечение в докере?
2 ответа
Но когда я выхожу из докера над контейнером и запускаю его снова, vim был удален.
Вот где проблема: docker run
создает новый контейнер.
Когда вы используете docker run ...
новый контейнер создается и запускается на основе изображения, которое вы предоставляете внутри команды. Также назначен случайный name
(если вы не укажете один). Если этот контейнер выходит, вы можете использовать docker start name
и начни это снова. Это означает, что если вы ранее установили vim
это будет там.
Решение: создайте новый образ, который включает в себя то, что вам нужно.
Sergiu предложил использовать Dockerfile
или другой способ - сохранить текущее состояние вашего контейнера в новом изображении, чтобы вы могли использовать его позже для создания новых контейнеров с вашими изменениями. Для этого вы можете использовать Docker commit
что-то вроде этого:
docker commit your_modified_container_name [REPOSITORY[:TAG]]
У вас есть варианты: или вы редактируете Dockerfile, предоставленный автором, чтобы добавить vim, или вы создаете новый Dockefile FROM изображения.