Справочник

Получение из контейнеров Docker копии каталога WP и базы данных.

root@debian:~# find / -name docker-compose.yml
/opt/compose/wordpress/docker-compose.yml

root@debian:/opt/compose/wordpress# ls
1  docker-compose.yml  mysql-dump.sql

root@debian:/opt/compose/wordpress# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                                     NAMES
be52139a567e   wordpress   "docker-entrypoint.s…"   5 weeks ago   Up 4 hours   0.0.0.0:8080->80/tcp, [::]:8080->80/tcp   wordpress-wordpress-1
662200235e44   mysql:8.0   "docker-entrypoint.s…"   5 weeks ago   Up 4 hours   3306/tcp, 33060/tcp                       wordpress-db-1

root@debian:/opt/compose/wordpress# docker exec -it wordpress-wordpress-1 bash
root@be52139a567e:/var/www/html# ls
index.php    wp-activate.php     wp-comments-post.php  wp-config.php  wp-includes        wp-login.php     wp-signup.php
license.txt  wp-admin            wp-config-docker.php  wp-content     wp-links-opml.php  wp-mail.php      wp-trackback.php
readme.html  wp-blog-header.php  wp-config-sample.php  wp-cron.php    wp-load.php        wp-settings.php  xmlrpc.php

root@debian:/opt/compose/wordpress# docker  cp  wordpress-wordpress-1:/var/www/html ./www_backup   
Successfully copied 634MB to /opt/compose/wordpress/www_backup
root@debian:/opt/compose/wordpress# ls
1  docker-compose.yml  mysql-dump.sql  www_backup
root@debian:/opt/compose/wordpress# cd www_backup/
root@debian:/opt/compose/wordpress/www_backup# ls
html
root@debian:/opt/compose/wordpress/www_backup# cd html/
root@debian:/opt/compose/wordpress/www_backup/html# ls
index.php    wp-activate.php     wp-comments-post.php  wp-config-sample.php  wp-includes        wp-login.php     wp-signup.php
license.txt  wp-admin            wp-config-docker.php  wp-content            wp-links-opml.php  wp-mail.php      wp-trackback.php
readme.html  wp-blog-header.php  wp-config.php         wp-cron.php           wp-load.php        wp-settings.php  xmlrpc.php

root@debian:/opt/compose/wordpress/www_backup# apt update
root@debian:/opt/compose/wordpress/www_backup# apt install zip
root@debian:/opt/compose/wordpress/www_backup# ls
html

root@debian:/opt/compose/wordpress/www_backup# zip -r html.zip html

root@debian:/opt/compose/wordpress/www_backup# ls
html  html.zip

root@debian:/opt/compose/wordpress/www_backup# cp html.zip /opt/compose/wordpress 

root@debian:/opt/compose/wordpress/www_backup# cd ..

root@debian:/opt/compose/wordpress# ls

1  docker-compose.yml  html.zip  mysql-dump.sql  www_backup

root@debian:/opt/compose/wordpress# 

//------------------------------------------------------------------------------------

root@debian:/opt/compose/wordpress# cat docker-compose.yml 
version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

root@debian:/opt/compose/wordpress# docker ps

CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                                     NAMES
be52139a567e   wordpress   "docker-entrypoint.s…"   5 weeks ago   Up 8 hours   0.0.0.0:8080->80/tcp, [::]:8080->80/tcp   wordpress-wordpress-1
662200235e44   mysql:8.0   "docker-entrypoint.s…"   5 weeks ago   Up 8 hours   3306/tcp, 33060/tcp                      wordpress-db-1

root@debian:/opt/compose/wordpress# docker logs wordpress-db-1 > 1

root@debian:/opt/compose/wordpress# head 1
2025-12-22 08:10:40+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.44-1.el9 started.
2025-12-22 08:10:41+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2025-12-22 08:10:41+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.44-1.el9 started.
2025-12-22 08:10:42+00:00 [Note] [Entrypoint]: Initializing database files
2025-12-22 08:15:11+00:00 [Note] [Entrypoint]: Database files initialized
2025-12-22 08:15:11+00:00 [Note] [Entrypoint]: Starting temporary server
2025-12-22 08:15:30+00:00 [Note] [Entrypoint]: Temporary server started.
'/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
2025-12-22 08:16:27+00:00 [Note] [Entrypoint]: GENERATED ROOT PASSWORD: oK57e6tJ+NpVd64H4jIi/q11L+q5cpcD
2025-12-22 08:16:29+00:00 [Note] [Entrypoint]: Creating database exampledb

root@debian:/opt/compose/wordpress# docker exec -it wordpress-db-1 mysqldump   -u root -poK57e6tJ+NpVd64H4jIi/q11L+q5cpcD exampledb > mysql-dump.sql


root@debian:/opt/compose/wordpress# ls
1  docker-compose.yml  mysql-dump.sql
root@debian:/opt/compose/wordpress# head mysql-dump.sql 
mysqldump: [Warning] Using a password on the command line interface can be insecure.
-- MySQL dump 10.13  Distrib 8.0.44, for Linux (x86_64)
--
-- Host: localhost    Database: exampledb
-- ------------------------------------------------------
-- Server version       8.0.44

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*------------------------------------------------------------------------*/
Изменение пароля WP
Перейдите в папку активной темы: /wp-content/themes/ваша-тема/.
Откройте файл functions.php.
В самый конец файла добавьте строку:
php
wp_set_password( 'новый-пароль', ID_пользователя );
замените 'новый-пароль' на желаемый пароль;
укажите ID_пользователя (у администратора обычно 1).
Сохраните и загрузите файл на сервер.
Откройте любую страницу сайта в браузере — пароль сбросится.
Обязательно удалите добавленную строку из functions.php, чтобы пароль не сбрасывался при каждом заходе на сайт.