Как я могу сохранить данные и программное обеспечение в контейнере 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 это будет там.

Решение: создайте новый образ, который включает в себя то, что вам нужно.

  1. Sergiu предложил использовать Dockerfile

  2. или другой способ - сохранить текущее состояние вашего контейнера в новом изображении, чтобы вы могли использовать его позже для создания новых контейнеров с вашими изменениями. Для этого вы можете использовать Docker commit

что-то вроде этого:

docker commit your_modified_container_name [REPOSITORY[:TAG]]

У вас есть варианты: или вы редактируете Dockerfile, предоставленный автором, чтобы добавить vim, или вы создаете новый Dockefile FROM изображения.

Другие вопросы по тегам