通过docker一键运行mysql/phpmyadmin/redis三个服务。
以下是通过docker compose运行MySQL 8.0;phpMyAdmin-5.2.1;以及最新版的Redis。
cat docker-compose.yml
version: '3'
services:
mysql:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: woaiyou737
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
network_mode: "host"
hostname: mysql
volumes:
- ./data:/var/lib/mysql
- ./config:/etc/mysql/conf.d
phpmyadmin:
image: registry.cn-shenzhen.aliyuncs.com/mancxi/phpmyadmin:latest
restart: always
environment:
PMA_HOST: 127.0.0.1
PMA_PORT: 3306
network_mode: "host"
depends_on:
- mysql
redis:
image: redis:latest
restart: always
command: redis-server --appendonly yes
network_mode: "host"
hostname: redis
volumes:
- ./redis-data:/data
关于docker compose解释:
1.network_mode:
全部容器的网络的是Host模式,Docker容器将直接使用主机的网络栈,即与主机共享网络命名空间。这意味着容器将使用与主机相同的IP地址和端口,从而使容器与主机之间的网络通信更加高效快速。
2.运行此docker compose文件,会产生以下目录:
config目录:为mysql容器配置文件目录,对应容器内的/etc/mysql/conf.d,存放数据库的配置文件。
data目录:为mysql容器的数据文件目录,/var/lib/mysql,存放数据库的数据文件。
redis-data目录:为redis容器的数据持久化数据存储目录。
3.phpmyadmin的镜像解释:
phpmyadmin的镜像使用的是修改过http服务端口重新打包的镜像,只将服务端口改为:3380,其余无任何改动。
4.运行情况:
在宿主机看来mysql;phpmyadmin;redis三个容器都像以服务的形式运行。