Образ WordPress Docker не сохраняет wp-контент при создании новых образов Docker - PullRequest
1 голос
/ 27 октября 2019

позвольте мне прояснить ситуацию:


  1. Запустить докерский контейнер WordPress с:

    Docker run --name wp -d -p 80: 80 wordpress


Вход в работающий контейнер с использованием bash:

docker exec -it wp / bin / bash


Создание 2 фиктивных файлов:

Один в корне:

touch / xxx

Один в wp-контенте / темах

touch / var / www / html / wp-content / themes / xxx


Создать новый образ WordPress:

Docker commit wp new_wp


Убить оригинальный контейнер:

Docker kill wp


Запуск нового образа докера:

запуск докера --name new_wp -d -p 80:80 new_wp


Проверка фиктивных файлов, созданных на шаге 3:

Фиктивный файл в корневом каталоге существует

Фиктивный файл в wp-content / themes больше не существует !!!


Вопросы:

  1. Может кто-нибудь объяснить такоеПоведение bizare на шаге 7?
  2. Что я должен делать для сохранения данных wp-контента?

PS Я развертываю на экземплярах AWS ECS Fargate, поэтому использование томов не очень практичнодля меня. В идеале - я хотел бы, чтобы все под одним изображением без исчезновения файлов из каталога wp-content .

Большое спасибо за ваши ответы.

Ответы [ 2 ]

2 голосов
/ 27 октября 2019

Образ докера для wordpress включает инструкцию VOLUME :

VOLUME /var/www/html

Это заставляет создавать том во всех результирующих контейнерах, даже если вы не указали один в своем docker run команда. Без спецификации вы получите анонимный том с длинным уникальным идентификатором, который можно увидеть в docker volume ls.

Команде docker commit (которую я настоятельно рекомендую не использовать в любом рабочем процессе, для которого требуется повторяемость). фиксирует только изменения в файловой системе контейнера (вы можете увидеть их с помощью docker container diff). Изменения в томе не являются частью файловой системы контейнера, и поэтому не будут включены в этот коммит.

Чтобы сохранить данные, вы должны определить и использовать том, например:

docker run --name wp -v wpdata:/var/www/html -d -p 80:80 wordpress
1 голос
/ 27 октября 2019

Docket по своей природе непостоянен.

Если вы хотите использовать Docker для WP, я настоятельно рекомендую перенести управление активами изображений в S3 и Cloudfront.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...