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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
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" \
-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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
18天前
|
关系型数据库 MySQL 应用服务中间件
Docker 镜像的创建(二)
Docker 镜像的创建(二)
|
18天前
|
缓存 Linux Apache
Docker 镜像的创建(一)
Docker 镜像的创建(一)
|
18天前
|
运维 监控 Docker
构建高效微服务架构:从理论到实践构建高效自动化运维体系:Ansible与Docker的完美融合
【5月更文挑战第31天】 在当今软件开发的世界中,微服务架构已经成为了实现可伸缩、灵活且容错的系统的关键策略。本文将深入探讨如何从零开始构建一个高效的微服务系统,涵盖从概念理解、设计原则到具体实施步骤。我们将重点讨论微服务设计的最佳实践、常用的技术栈选择、以及如何克服常见的挑战,包括服务划分、数据一致性、服务发现和网络通信等。通过实际案例分析,本文旨在为开发者提供一套实用的指南,帮助他们构建出既健壮又易于维护的微服务系统。
|
2天前
|
运维 监控 API
自动化运维实践指南:Python脚本优化服务器管理任务
本文探讨了Python在自动化运维中的应用,介绍了使用Python脚本优化服务器管理的四个关键步骤:1) 安装必备库如paramiko、psutil和requests;2) 使用paramiko进行远程命令执行;3) 利用psutil监控系统资源;4) 结合requests自动化软件部署。这些示例展示了Python如何提升运维效率和系统稳定性。
|
4天前
|
缓存 Linux Docker
docker 跨平台构建镜像
docker 跨平台构建镜像
8 0
|
4天前
|
Linux Docker Python
【docker】Mac M1 构建 x64 linux镜像
【docker】Mac M1 构建 x64 linux镜像
11 0
|
11天前
|
存储 持续交付 数据安全/隐私保护
实现镜像管理轻松搞定:Docker 仓库管理详解
实现镜像管理轻松搞定:Docker 仓库管理详解
170 1
|
12天前
|
存储 SQL 运维
使用PowerShell进行自动化脚本编写:入门与实战
【6月更文挑战第6天】本文介绍了PowerShell作为Windows系统管理的自动化工具,用于提升效率和减少错误。内容涵盖PowerShell基础,如变量、命令执行、管道、条件和循环语句、函数。实战案例展示了如何用PowerShell脚本进行文件备份。此外,还提及PowerShell的进阶功能,如模块、远程管理和与其他工具集成。学习和应用PowerShell能有效提升IT运维自动化水平。
|
12天前
|
Cloud Native Java Docker
java一分钟之-Docker化Java应用:Dockerfile与镜像构建
【6月更文挑战第6天】本文探讨了Docker在Java应用部署中的重要性,强调了Dockerfile在保证环境一致性和提升部署效率上的作用。Dockerfile是自动化构建Docker镜像的文本文件,它的使用能实现标准化、可重复性和透明度。文章指出了编写Dockerfile时的常见问题,如指令误用、镜像体积过大和安全性不足,并提供了相应的解决策略。通过一个Spring Boot应用的实战示例,展示了如何编写Dockerfile和构建镜像。总之,掌握Dockerfile和镜像构建技巧对于优化Java应用的云原生部署至关重要。
41 0
|
19天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于Docker和Kubernetes的实践
【5月更文挑战第30天】 在当今的快速迭代和持续部署的软件发布环境中,自动化运维的重要性愈发凸显。本文旨在探讨如何利用容器化技术与微服务架构,特别是Docker和Kubernetes,来构建一个高效、可伸缩且自愈的自动化运维体系。通过详细分析容器化的优势及Kubernetes的集群管理机制,文章将提供一个清晰的指南,帮助读者理解并实现现代软件部署的最佳实践。

热门文章

最新文章