Фиксация контейнера в новом образе
На этом этапе вы узнаете, как зафиксировать изменения, внесенные внутри работающего контейнера, в новом Docker-образе. Это полезно, когда вы хотите сохранить состояние контейнера после внесения изменений, таких как установка программного обеспечения или настройка файлов.
Сначала запустим простой контейнер на основе образа Ubuntu. Мы будем использовать образ ubuntu
. Поскольку мы будем вносить изменения внутри контейнера, нам нужно запустить его в интерактивном режиме с псевдотерминалом.
docker run -it ubuntu
Теперь вы должны находиться в оболочке контейнера Ubuntu. Давайте внесем простое изменение, например, установим пакет curl
.
apt-get update
apt-get install -y curl
После завершения установки выйдите из оболочки контейнера, набрав exit
.
exit
Теперь, когда вы вышли из контейнера, изменения, которые вы внесли (установка curl
), по-прежнему присутствуют в этом конкретном экземпляре контейнера. Чтобы сохранить эти изменения в новом образе, вам нужно зафиксировать контейнер.
Сначала найдите идентификатор контейнера, из которого вы только что вышли. Вы можете использовать команду docker ps -a
для вывода списка всех контейнеров, включая остановленные.
docker ps -a
Найдите контейнер, созданный из образа ubuntu
, и запишите его CONTAINER ID
.
Теперь используйте команду docker commit
для создания нового образа из этого контейнера. Базовый синтаксис: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
. Мы зафиксируем контейнер и дадим новому образу имя и тег. Замените <CONTAINER_ID>
на фактический идентификатор, который вы нашли.
docker commit < CONTAINER_ID > my-ubuntu-with-curl:v1
Эта команда создает новый образ с именем my-ubuntu-with-curl
и тегом v1
. Вы можете убедиться, что новый образ был создан, выведя список локальных образов.
docker images
В списке образов вы должны увидеть my-ubuntu-with-curl
. Этот новый образ теперь включает пакет curl
, который вы установили в контейнере.