Самый простой способ реализовать это - использовать docker-compose.Вот пример:
version: '3.2'
services:
database:
image: mysql:5.7
volumes:
- my_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: password
wordpress:
depends_on:
- database
image: wordpress:php7.3-apache
ports:
- '8000:80'
restart: always
environment:
WORDPRESS_DB_HOST: database:3306
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: password
working_dir: /var/www/html
volumes:
my_data: {}
Несколько замечаний: база данных не монтирует порты на хосте, потому что в этом нет необходимости.Если вы не хотите использовать docker-compose, вы можете запустить команды docker run для этого, но затем вам нужно создать собственную сеть для контейнеров и присоединить их к ней.
Wordpress будет доступен на http://localhost:8000.
WORDPRESS_DB_HOST - это соединение с базой данных, и вы не сможете получить к нему доступ через http.
Надеюсь, это поможетвы.