Docker自动化双主-02自动化脚本制作镜像启动

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

基于 DOCKER MySQL 主从搭建:
image

一、根据 Linux 系统版本号安装 docker
EG:
Centos 7:
1.shell>sudo yum update
2.添加 dockeryum
$
[dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1
gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF 3.安装 docker 的包
shell>sudo yum install docker-engine
4.将 docker 加到服务里面
shell>sudo systemctl enable docker.service 5.启动 docker
shell> sudo systemctl start docker
二、将 docker 镜像导入 linux:

镜像文件上传到/opt/dtstack 目录下:

1.载入镜像:
Shell>cd /opt/dtstack
Shell>docker load < mysql-5.6-x86_64.tar
[root@centos7 docker]# docker load < mysql-5.6-x86_64.tar
c411e76031a4: Loading layer [==================================================>] 201.9 MB/201.9 MB
abd40b5d012f: Loading layer [==================================================>] 60.97 MB/60.97 MB
7d082aa6bb0c: Loading layer [==================================================>] 263.3 MB/263.3 MB
173e11cd6be1: Loading layer [==================================================>] 6.656 kB/6.656 kB
bdb04743768e: Loading layer [==================================================>]
sudo
tee /etc/yum.repos.d/docker.repo <<-'EOF'
3.072 kB/3.072 kB
9da6836b8f64: Loading layer [==================================================>] 4.872 MB/4.872 MB
d47abb872b5c: Loading layer [==================================================>] 20.3 MB/20.3 MB
008419e2fbfc: Loading layer [==================================================>] 108.9 MB/108.9 MB
95d9d0bff849: Loading layer [==================================================>] 23.04 kB/23.04 kB
71405897d961: Loading layer [==================================================>] 1.68 MB/1.68 MB
58b14b6eb7df: Loading layer [==================================================>] 49.48 MB/49.48 MB
fffc1c2170a5: Loading layer [==================================================>] 94.12 MB/94.12 MB
9d60f33d82f1: Loading layer [==================================================>] 23.7 MB/23.7 MB
2b9b1be70303: Loading layer [==================================================>] 6.656 kB/6.656 kB
a2018f6089d9: Loading layer [==================================================>] 1.122 GB/1.122 GB
9e274ef73e1d: Loading layer [==================================================>] 13.82 kB/13.82 kB
d0ca45b2e986: Loading layer [==================================================>] 6.144 kB/6.144 kB
Loaded image: dtstack_db_01:5.6
2.列出本地已有镜像:
Shell> docker images REPOSITORY TAG SIZE
dtstack_db_01 5.6 1.92 GB
3.传参脚本说明: #!/bin/bash APP_NAME=db_01
DOCKER_IMAGE=dtstack_db_01:5.6
docker_run(){
docker run -dt \
--restart=always --name $APP_NAME \
IMAGE ID 26e6aa6ed6c2
CREATED 22 hours ago

-p 3306:3306 #映射的端口号
-v /etc/localtime:/etc/localtime:ro \
-v /data/mysql/my3306:/data/mysql \
/data/mysql 目录必须存在
-e "dbport=3306" #dbport
-e "db_root_password=root123" -e "db_master_ip=172.16.1.65" -e "db_slave_ip=172.16.1.86" \

宿主机目录挂载到/data/mysql/myxxx 下,

-e "db_tag=master" -e "db_instance=4" \
实例...
-i $DOCKER_IMAGE
} docker_run
4.运行 mysql_docker.sh 脚本 Shell>./mysql_docker.sh

db 角色

选择性部署多实例。EG:单实例 db_instance=1, 3 则是 3 个

5.检查容器运行状态: Shell>docker ps –a CONTAINER ID
STATUS
IMAGE PORTS
COMMAND
"/bin/sh -c '/home..." 34 seconds ago
NAMES
CREATED
dd47a290ae94
Up 34 seconds
dtstack_db_01:5.6
0.0.0.0:3306->3306/tcp, 3307-3311/tcp db_01
6.进行观察日志信息是否搭建成功:
Shell>docker logs dd47a290ae94
170317 19:31:09 mysqld_safe Logging to '/data/mysql/log/alert.log'.
170317 19:31:09 mysqld_safe Starting mysqld daemon with databases from /data/mysql/data create replicaiton log
master change master to
update root password log
SLAVE: 同上述操作: 1.需要更改的: #!/bin/bash APP_NAME=db_01
DOCKER_IMAGE=dtstack_db_01:5.6
docker_run(){ docker run -dt \

--restart=always \
--name $APP_NAME \
-p 3306:3306 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/mysql/my3306:/data/mysql \
-e "dbport=3306" \
-e "db_root_password=root123" \
-e "db_master_ip=172.16.1.69" \
-e "db_slave_ip=172.16.1.86" \
-e "db_tag=slave" #将 tag 标签转换为 slave,其他不需要修改 -e "db_instance=4" \
-i $DOCKER_IMAGE
}
2.启动 mysql_slave.sh 脚本: Shell>./mysql_docker.sh [root@localhost docker]# docker ps -a
CONTAINER ID CREATED NAMES fb45654c2eda Up 6 minutes docker_run
IMAGE STATUS
dtstack_db_01:5.6 0.0.0.0:3306->3306/tcp, 3307-3311/tcp
COMMAND PORTS
6 minutes ago
db_01
"/bin/sh -c '/home..."
三、通过外部连接 mysql:检查主从是否正常:
1.SLAVE:
Shell>mysql -h172.16.1.86 -uroot -proot123 -P3306 -e "start slave;show slave statusG" | grep _Running | awk 'NR!=3'
Warning: Using a password on the command line interface can be insecure.
2.master:
[root@centos7 docker]# mysql -h172.16.1.65 -uroot -proot123 -P3306 -e "start slave;show slave statusG" | grep _Running | awk 'NR!=3'
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Slave_IO_Running: Yes

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
运维 Kubernetes Devops
自动化运维的变革之路:从脚本到DevOps
【8月更文挑战第28天】在信息技术迅猛发展的今天,自动化运维已成为企业提升效率、确保服务质量的关键。本文将带你领略自动化运维的发展脉络,从最初的脚本编写到现代的DevOps实践,揭示这一领域如何不断进化以适应新的技术挑战。你将看到,通过采纳DevOps文化和工具,团队如何打破壁垒,实现更高效的协作与交付,从而为企业带来持续的创新和价值。
|
1天前
|
数据采集 运维 Devops
探索Python编程之美:从基础到进阶自动化运维的变革之路:从脚本到DevOps
【8月更文挑战第30天】在数字化时代的浪潮中,编程已经成为一门重要的技能。Python以其简洁明了的语法和强大的功能,成为了许多初学者的首选编程语言。本文将通过浅显易懂的语言,带领读者从Python的基础语法出发,逐步深入到面向对象编程、网络爬虫开发以及数据分析等高级应用,旨在帮助初学者构建扎实的编程基础,并激发他们进一步探索编程世界的热情。文章不仅分享实用的编程技巧,还将探讨如何将编程知识应用于解决实际问题,以期培养读者的问题解决能力和创新思维。
|
1天前
|
运维 监控 调度
自动化运维:使用Python脚本简化日常任务
【8月更文挑战第30天】本文通过介绍如何使用Python脚本来简化和自动化日常的运维任务,旨在帮助读者提升工作效率。文章将重点介绍如何使用Python的基本库以及如何创建简单的脚本来处理文件、监控服务器状态和自动化备份过程。我们将从基础开始,逐步深入到更复杂的应用场景,使读者能够根据实际需要编写自己的自动化脚本。
|
4天前
|
存储 安全 Ubuntu
Docker 镜像与 Docker 容器的区别
【8月更文挑战第27天】
42 5
|
3天前
|
运维 Devops 持续交付
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
|
4天前
|
运维 Ubuntu Shell
掌握Docker容器的创建:从镜像到实例
【8月更文挑战第27天】
42 4
|
1天前
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
9 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
|
2天前
|
物联网 Serverless API
函数计算产品使用问题之怎么部署Docker镜像进行lora训练
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5天前
|
存储 Docker 容器

热门文章

最新文章

下一篇
云函数