使用 docker-compose 运行 MySQL
使用 docker-compose 运行 MySQL
目录结构
.
│ .env
│ docker-compose.yml
│
└─mysql
├─config
│ my.cnf
│
└─data
mysql 目录下的 data 为数据目录,mysql 的数据表、二进制日志文件就在这里。.env 文件包含了一些变量,这些变量可以在 docker-compose.yml 文件中通过 ${variable_name} 来引用。
- 当然也可以把 mysql 的目录放到其它地方,这里图个方便,直接放在 yml 文件同级目录了。
.env 文件
MYSQL_ROOT_PASSWORD=root
MYSQL_ROOT_HOST=%
MYSQL_DIR=./mysql
MySQL 配置文件 my.cnf
[mysqld]
character-set-server=utf8mb4
default-time-zone='+8:00'
innodb_rollback_on_timeout='ON'
max_connections=500
innodb_lock_wait_timeout=500
- 如果使用默认配置,这个文件可以省略。
docker-compose.yml
version: '3'
services:
mysql-db:
container_name: mysql-docker # 指定容器的名称
image: mysql:8.0 # 指定镜像和版本
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_ROOT_HOST: ${MYSQL_ROOT_HOST}
volumes:
- "${MYSQL_DIR}/data:/var/lib/mysql" # 挂载数据目录
- "${MYSQL_DIR}/config:/etc/mysql/conf.d" # 挂载配置文件目录
Environment 变量
MYSQL_ROOT_PASSWORD
:这个不用解释,root 用户的密码。
MYSQL_USER
,MYSQL_PASSWORD
:这两个变量为可选,创建一个新用户,这个用户在 MYSQL_DATABASE
变量指定的数据库上拥有超级用户权限。
MYSQL_DATABASE
:指定一个数据库,在容器启动时创建。
MYSQL_ALLOW_EMPTY_PASSWORD
:设置为 yes 允许 root 用户的密码为空。(不推荐)
MYSQL_RANDOM_ROOT_PASSWORD
:设置为 yes 将在容器启动时为 root 用户生成一个随机的密码,密码会显示到标准输出流(GENERATED ROOT PASSWORD:......)。
MYSQL_ONETIME_PASSWORD
:字面意思就是一次性密码,为 root 用户设置,第一次登录后必须修改密码(仅支持 5.6 以上的版本)。
运行容器
在 docker-compose.yml 目录下执行:
docker-compose up
如果要在后台运行,使用 docker-compose up -d
。
停止容器:
docker-compose down
如果是前台运行的,使用:Ctrl + C
停止。这两种方式在停止后都会删除容器,下次启动必须使用 up 命令。
停止但不删除容器:
docker-compose stop
使用 stop
停止后,再次启动使用 start
命令即可。
docker exec-it mysql-docker sh
通过命令行连接到 容器
i
保持容器打开t
产生一个伪终端
最新文章
- Git从码云Clone代码到本地
- unity3d中串口的使用
- win2008下安装SQL SERVER 2005出现IIS功能要求 警告解决方案
- 配置FastReport,FastReport报表加载不出来
- 使用oracle utl_http包需要注意的事项
- mysql 字符集设置方法
- 转:PCL+VS2010环境配置
- JBuilder链接sql server数据库
- libevent中定时器的使用方法
- 数学语言和程序语言的对比:面向过程与面向集合&;命题
- 从网页psd到html的开发
- 【转】android ddms中查看线程释疑
- iOS_SN_CoreDate(一)封装使用
- base64转码
- linux mysql-server和mysql-client
- [UOJ UNR#2 黎明前的巧克力]
- python day05
- Sping4之注入参数
- scipy构建稀疏矩阵
- Luogu P3251 [JLOI2012]时间流逝 期望dp
热门文章
- 微软在Build 2019大会上发布Fluid Framework协作平台
- 微信小程序动画之弹出菜单
- ESP8266与ESP8285开发时有什么区别
- [转]JVM系列五:JVM监测&;工具[整理中]
- -bash: /home/java/jdk1.8.0_221/bin/java: 权限不够
- 在python的虚拟环境venv中使用gunicorn
- 解决angular单页面页面底部跳转到新页面滚动条不在顶部的问题
- INVERSION包
- <;Tree>; 337 BFS: 103
- 第02组 Beta冲刺(4/5)