docker搭建mysql
使用docker来搭建mysql
1. 使用docker run 的方式创建
创建配置文件目录
1
2mkdir -p /opt/docker-data/mysql/datadir
mkdir -p /opt/docker-data/mysql/init容器初始化脚本(可选,起来后执行的脚本)
1
2
3
4
5
6
7
8
9
10
11
12
13vim /opt/docker-data/mysql/init/01_create_init.sql
--用来创建多个用户和数据库
CREATE DATABASE IF NOT EXISTS gitea DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
drop user 'gitea'@'%';
create user 'gitea'@'%' identified by '12345678';
grant all privileges on gitea.* to 'gitea'@'%' with grant option;
flush privileges;拉取镜像
1
[root@zmr-service opt]# docker pull mysql/mysql-server:8.0.32
创建需要的nginx容器
1
2
3
4
5
6
7
8
9
10
11
12
13
14暴露自己需要的端口
docker run -d --name mysql \
--restart=always \
-v /opt/docker-data/mysql/datadir:/var/lib/mysql \
-v /opt/docker-data/mysql/init:/docker-entrypoint-initdb.d\
-e MYSQL_ROOT_PASSWORD=12345678 \
-e MYSQL_DATABASE=nextclud \
-e MYSQL_USER=nextcloud \
-e MYSQL_PASSWORD=12345678 \
-e LC_ALL="en_US.UTF-8" \
-e TZ="Asia/Shanghai" \
-p 3306:3306\
mysql/mysql-server:latest2. 使用docker-compose的方式创建
.env
1
COMPOSE_PROJECT_NAME=app
docker-compose.yml
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
27version: '3'
services:
db:
image: mysql/mysql-server:8.0.32
restart: always
container_name: "mysql8"
# ports:
# - 3306:3306
environment:
MYSQL_ROOT_PASSWORD: 12345678
MYSQL_DATABASE: gitea
MYSQL_USER: gitea
MYSQL_PASSWORD: 12345678
LC_ALL: "en_US.UTF-8"
TZ: "Asia/Shanghai"
volumes:
- "/opt/docker-data/mysql/datadir:/var/lib/mysql"
- "/opt/docker-data/mysql/init:/docker-entrypoint-initdb.dl"
command: --default-authentication-plugin=mysql_native_password
networks:
- net
networks: # 这里创建了一个 app_net的网络,后面如果有容器需要mysql,可直接继承这个网络
net:
driver: bridge