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

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

基于 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" \ -iDOCKER_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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
32444
分享
相关文章
docker load 后镜像名称为空的问题解决
Docker在容器化应用程序时提供了强大的镜像管理功能,但也可能在某些操作中遇到如镜像名称为空的问题。通过理解问题的成因并采取适当的解决方案,如正确保存和加载镜像、手动修复标签等,可以有效避免和解决这一问题。通过本文提供的指导,您可以确保在使用Docker进行镜像操作时更为顺利,并提高容器管理的效率。
125 82
大模型文件Docker镜像化部署技术详解
大模型文件Docker镜像化部署技术详解
54 2
YashanDB Docker镜像制作
本文介绍了使用Docker部署YashanDB数据库的方法及其优势。相比传统部署方式,Docker简化了环境配置,实现一键部署,确保软件在不同环境中一致运行。文章详细讲解了数据库镜像与容器的概念、Dockerfile的构建流程,以及如何通过Dockerfile定制YashanDB镜像。此外,还演示了镜像的发布过程,包括推送至阿里云容器镜像服务(ACR)。最后,探讨了容器启动时的初始化脚本设置和数据文件复用方法,满足客户对数据库自动化初始化和数据持久化的需求。
|
4月前
|
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
317 61
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
docker环境安装kafka/Flink/clickhouse镜像
通过上述步骤和示例,您可以系统地了解如何使用Docker Compose安装和配置Kafka、Flink和ClickHouse,并进行基本的验证操作。希望这些内容对您的学习和工作有所帮助。
231 28
Docker Image即Docker镜像
Docker 镜像是 Docker 容器的基础,包含了运行应用程序所需的一切。通过 Dockerfile 可以方便地创建自定义镜像,并且利用 Docker 提供的命令可以轻松管理和使用这些镜像。掌握 Docker 镜像的创建、管理和使用,是进行容器化应用开发和部署的基础技能。希望本文能帮助读者更好地理解 Docker 镜像的概念和操作,提高开发和运维效率。
103 13
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
280 70
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
136 2
AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本
AutoMouser是一款Chrome扩展程序,能够实时跟踪用户交互行为,并基于OpenAI的GPT模型自动生成Selenium测试代码,简化自动化测试流程。
225 17
AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等