如何部署Docker MySQL 8.0?
- By : Will
- Category : Docker, MySQL & MariaDB
Docker
1 基础知识
一个问题,一篇文章,一出故事。
本章将实现Docker MySQL 8.0的部署。
2 最佳实践
2.1 部署Docker集群
如果你尚未部署Docker集群环境,请参阅如下章节部署,
2.2 部署前的准备
In hd01,
cd /data/docker/images/ docker load -i mysql_8.0.tar docker tag mysql:8.0 hd01.cmdschool.org:5000/mysql:8.0 docker push hd01.cmdschool.org:5000/mysql:8.0
另外,安装包的离线下载请在能上网的docker环境的机器上使用如下命令,
docker pull mysql:8.0 docker save mysql:8.0 -o mysql_8.0.tar
另外,其他版本请从以下链接下载,
https://hub.docker.com/_/mysql
2.3 部署MySQL
In hd01
2.3.1 创建服务配置文件
In hd01,
vim /data/docker/yml/mysql8-hd03-stack.yml
加入如下配置,
version: '3.6'
services:
hd03:
image: 'hd01.cmdschool.org:5000/mysql:8.0'
ports:
- target: 3306
published: 3306
protocol: tcp
mode: host
environment:
- 'MYSQL_ROOT_PASSWORD=mysqlpwd'
volumes:
- type: bind
source: /data/docker/container-data/mysql8/conf/my.cnf
target: /etc/my.cnf
- type: volume
source: mysql-data-hd03
target: /var/lib/mysql
command: --default-authentication-plugin=mysql_native_password
logging:
driver: "json-file"
options:
max-size: "200m"
max-file: "5"
deploy:
replicas: 1
placement:
constraints: [node.labels.mysql8-hd03 == true]
volumes:
mysql-data-hd03:
external: true
根据配置需求创建数据卷,
In hd03,
docker volume create mysql-data-hd03
根据配置需求创建数据存放目录,
In hd03,
mkdir -p /data/docker/container-data/mysql8/conf
根据配置需求创建MySQL主配置文件,
vim /data/docker/container-data/mysql8/conf/my.cnf
加入如下配置,
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,ANSI_QUOTES default-time_zone = '+8:00' # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 group_concat_max_len=10000000 wait_timeout = 600 interactive_timeout = 600 max_connections = 4000 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # #!includedir /etc/my.cnf.d
根据配置的需求设置运行标记,
In hd01,
docker node update --label-add mysql8-hd03=true hd03.cmdschool.org
2.3.2 部署服务
In hd01,
docker stack deploy -c /data/docker/yml/mysql8-hd03-stack.yml mysql8
2.3.3 测试MySQL服务
In hd03,
docker exec -it $(docker container ls | grep ' mysql8_hd03' | awk '{print $1}') bash
然后,我们使用如下命令登录数据库,
mysql -uroot -p'mysqlpwd'
可使用如下命令查看当前的库,
show databases;
另外,直接在物理主机安装MySQL客户端亦可,
sudo yum install -y mariadb
登录数据库
mysql -uroot -p -h'mysqlpwd' hd03.cmdschool.org
参阅文档
=====================
官方参阅
————
https://hub.docker.com/_/mysql
https://hub.docker.com/_/adminer
文件兼容性参考
————–
https://docs.docker.com/compose/compose-file/
没有评论