环境声明
root@test-virtual-machine:~# cat /etc/issue
Ubuntu 22.04.1 LTS \n \l
root@test-virtual-machine:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest c3c92cc3dcb1 16 months ago 616MB
mysql 5.7 c20987f18b13 16 months ago 448MB
部署Wordpress
# 构建目录
root@test-virtual-machine:~# pwd
/root
root@test-virtual-machine:~# mkdir /wordpress %% cd wordpress
# 构建yaml文件
root@test-virtual-machine:~/wordpress# vim docker-compose.yaml
version: '3'
services:
mysql:
image: mysql:5.7
container_name: mysql5.7
restart: always
expose:
- 3306/tcp
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: wordpress
TZ: Asia/Shanghai
volumes:
- ./mysql/db/:/docker-entrypoint-initdb.d
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/logs:/logs
- ./mysql/data:/var/lib/mysql
wordpress:
image: wordpress:latest
container_name: wordpress
restart: always
depends_on:
- mysql
ports:
- 82:80
links:
- mysql:mysql
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: 123456
WORDPRESS_DB_NAME: wordpress
# 编排部署Wordpress
root@test-virtual-machine:~/wordpress# docker-compose up -d
Creating network "wordpress_default" with the default driver
Creating mysql5.7 ... done
Creating wordpress ... done
检查启动情况
# 查看容器状态
root@test-virtual-machine:~/wordpress# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7d9122692f1c wordpress:latest "docker-entrypoint.s…" 19 seconds ago Up 18 seconds 0.0.0.0:82->80/tcp, :::82->80/tcp wordpress
4c73d1c04560 mysql:5.7 "docker-entrypoint.s…" 20 seconds ago Up 19 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql5.7
# 查看端口
root@test-virtual-machine:~/wordpress# netstat -ntpl|grep docker-proxy
tcp 0 0 0.0.0.0:82 0.0.0.0:* LISTEN 21974/docker-proxy
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 21841/docker-proxy
tcp6 0 0 :::82 :::* LISTEN 21981/docker-proxy
tcp6 0 0 :::3306 :::* LISTEN 21847/docker-proxy
浏览器访问测试
Navicat连接数据库
# 进入mysql容器
root@test-virtual-machine:~/wordpress# docker exec -it mysql5.7 /bin/bash
# 登录数据库并修改权限
root@4c73d1c04560:/# mysql -uroot -p
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
mysql> flush privileges;
mysql> select user,host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+