发布于 

Docker环境下部署MySQL + Redis + PhpMyAdmin

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关联的的应用容器,这就是Docker Compose。

本次的版本是:
mysql:5.7
redis:7.0
phpmyadmin:latest

最好还是先Pull镜像

1
docker pull mysql:5.7
1
docker pull redis:7.0
1
docker pull phpmyadmin/phpmyadmin:latest

vim docker-compose.yaml

复制yaml格式的配置文件修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
version: '3.8'

services:
mysql:
image: mysql:5.7
container_name: mysql
command:
--lower_case_table_names=1
--default-authentication-plugin=mysql_native_password #这行代码解决无法访问的问题
# ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
restart: always
environment:
MYSQL_ROOT_PASSWORD: password # 修改这里的密码
MYSQL_DATABASE: dbname # 如果需要预创建数据库,指定数据库名
MYSQL_USER: dbuser # 可选,新建一个用户
MYSQL_PASSWORD: dbpasswd # 用户密码
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql

redis:
image: redis:7.0
container_name: redis
restart: always
ports:
- "6379:6379"
environment:
- TZ=Asia/Shanghai
- LANG=en_US.UTF-8
volumes:
- redis_data:/data

phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: phpmyadmin
restart: always
environment:
PMA_HOST: mysql
PMA_PORT: 3306
MYSQL_ROOT_PASSWORD: password # 和MySQL root用户密码保持一致
depends_on:
- mysql
ports:
- "8888:80"

volumes:
mysql_data:
redis_data:

使用Portainer-CE,直接部署就行

在bash 中,在docker-compose.yaml 目录中 执行

1
docker-compose up -d