基本是照着这个做的:https://www.cnblogs.com/straycats/p/9251571.html
默认登录进来在/root目录,直接新建的目录 /root/mysql,感觉有点不合理,暂时没改
1、初始化docker swarm
docker swarm init
2、在刚刚建立的目录下新建一个data目录,以及一个文件:mysql.yml
version: '3.6' services: mysql: image: mysql:5.6.40 environment: - TZ=Asia/Shanghai - MYSQL_ROOT_PASSWORD=123456 volumes: - /root/mysql/data:/var/lib/mysql deploy: replicas: 1 restart_policy: condition: any resources: limits: cpus: "0.2" memory: 512M update_config: parallelism: 1 # 每次更新1个副本 delay: 5s # 每次更新间隔 monitor: 10s # 单次更新多长时间后没有结束则判定更新失败 max_failure_ratio: 0.1 # 更新时能容忍的最大失败率 order: start-first # 更新顺序为新任务启动优先 ports: - 3306:3306 networks: - myswarm-net networks: myswarm-net:
3、运行
docker stack deploy -c mysql.yml mysqlstack
印象中 docker stack 工具是和docker一起安装到系统的
4、还需要配置mysql允许远程访问(完全copy过来的,仅以备忘):
docker ps
docker exec -it 0d66abc8ce32 /bin/bash
mysql -uroot -p
mysql> use mysql;
mysql> grant all privileges on *.* to root@'%' identified by "123456";
mysql> flush privileges;
mysql> exit
exit
然后在别的机器就可以用mysql管理工具连过来了