使用的环境是ubuntu-20.04.4, docker-20.10.5。
命令如下:
touch mysql.cnf
mkdir mysqldata
docker-compose -f docker-compose-db-dev.yml up -d
启动的效果
查看docker里启动的服务
mysql.cnf里配置是否生效
docker-compose-db-dev.yml的文件内容如下:
version: "3.3"
services:
mysql:
image: mysql:5.7.28
hostname: mysql.localhost.dev
container_name: localhost-dev-mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: mysqlpass
MYSQL_USER: dev
MYSQL_PASSWORD: dev@1234
volumes:
- ./mysqldata:/var/lib/mysql:rw
- ./mysql.cnf:/etc/mysql/mysql.cnf:rw
restart: always
mysql.cnf文件内容如下:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysqld]
innodb_lock_wait_timeout=10
其中,docker里的Volumes(数据卷)是一个可供一个或多个容器使用的位于宿主机上特殊目录,它拥有以下特性:
数据卷可以在容器间共享和重用 对数据卷的写入操作,不会对镜像有任何影响 数据卷默认会一直存在,即使容器被删除使用数据卷的目的是持久化容器中的数据,以在容器间共享或者防止数据丢失(写入容器存储层的数据会丢失)。