目录
自己安装mysql的时候老是遇到问题,比如端口号没写,环境变量没写,就是想不到去docker hub上去看一看。
介绍两种方式安装mysql
方式一、container:
Image
端口号
环境变量
最主要是用环境变量设置用户名和密码:
MYSQL_ROOT_PASSWORD
比如:
name:MYSQL_ROOT_PASSWORD
value:123456
5.7版本 数据卷,配置文件: /etc/mysql/my.cnf,日志文件:/var/log/mysql,数据文件:/var/lib/mysql,
具体流程
创建mysql的挂载文件夹
mkdir /opt/mysql/{data,conf,logs} -p
编辑配置文件
[root@node-11 ~]# vim /opt/mysql/conf/mysqld.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
lower_case_table_names = 1 ## 忽略mysql查询大小写
运行mysql
docker run -p 3306:3306 --name mysql -v /opt/mysql/conf/mysqld.cnf:/etc/mysql/my.cnf -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai --restart=always -d mysql:5.7
方式二
compose配置文件启动
stack:建议使用stack,这样容器出问题也会自动重启。
yml
version: '3.1'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: "123456"
ports:
- 3306:3306
volumes:
- data:/var/lib/mysql
adminer:
image: adminer
restart: always
ports:
- 8099:8080
volumes:
data:
注意:要加数据卷 ,保存数据。
volumes:
- data:/var/lib/mysql
分号左侧是数据卷名称(实际路径),右侧是镜像里的路径
备注:
现在portainer只支持v2版本的compose,所以要把上面的配置版本改成2.0
version: '2.0'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: "123456"
ports:
- 3306:3306
volumes:
- data:/var/lib/mysql
adminer:
image: adminer
restart: always
ports:
- 8099:8080
volumes:
data:
再更新:
chown: changing ownership of '/var/lib/mysql/': Permission denied
centos的权限问题,在docker run中加入 --privileged=true 给容器加上特定权限
参考博客: