Создание файлов в контейнере докера с их сохранением после перезагрузки докера

Мне необходимо создать внутри контейнера докера некоторые файлы, чтобы при перезагрузке докера они не удалились. Насколько я знаю, если перезапустить докер, то все файлы, созданные в контейнере докера будут удалены. Как мне создать файлы в контейнере и сохранить их при дальнейшей перезагрузке докера?


Ответы (1 шт):

Автор решения: Neolot

Вам необходимо хранить файлы на томе (volume), тогда данные будут постоянно хранится на нем и вы сможете делать с ним любые манипуляции.

Вот пример docker-compose.yml для Wordpress, где используются тома для БД и некоторых файлов конфигурации:

version: "3.6"

services:
    db:
        container_name: site_db
        image: mysql:8
        ports:
            - 127.0.0.1:3306:3306
        volumes:
            - db_data:/var/lib/mysql
        environment:
            MYSQL_ROOT_PASSWORD: 123456
            MYSQL_DATABASE: wordpress
        command: [
            '--default_authentication_plugin=mysql_native_password',
            '--character-set-server=utf8mb4',
            '--collation-server=utf8mb4_unicode_ci'
        ]

    wp:
        container_name: site_wp
        build: .
        ports:
            - 127.0.0.1:80:80
        volumes:
            - ./config/php.conf.ini:/usr/local/etc/php/conf.d/conf.ini
            - ./project:/var/www/html
        depends_on:
            - db
        environment:
            DB_NAME: wordpress
            DB_USER: root
            DB_PASSWORD: 123456
            DB_HOST: db
            DB_PREFIX: wp_
            WP_ADMIN: admin
            WP_ADMIN_EMAIL: [email protected]
            WP_TITLE: Test
            LIVE_URL: https://site.com
            DEV_URL: http://site.local

volumes: 
    db_data:

Подробнее про тома:
Изучаем Docker, часть 6: работа с данными
Use volumes

→ Ссылка