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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
+关注继续查看

基于 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
目录
相关文章
|
11月前
|
Docker 容器
制作Jexus的Docker镜像
制作Jexus的Docker镜像
119 0
制作Jexus的Docker镜像
|
11月前
|
Java Linux Shell
通过docker制作jar镜像并运行
通过docker制作jar镜像并运行
99 0
|
12月前
|
Kubernetes 测试技术 Docker
通过Dockerfile制作docker镜像
通过Dockerfile制作docker镜像
117 0
通过Dockerfile制作docker镜像
|
12月前
|
Java 应用服务中间件 Docker
Docker | 制作tomcat镜像并部署项目
Docker | 制作tomcat镜像并部署项目
203 0
Docker | 制作tomcat镜像并部署项目
|
12月前
|
Ubuntu 应用服务中间件 Linux
Docker | 镜像浅析,以及制作自己的镜像
Docker | 镜像浅析,以及制作自己的镜像
134 0
Docker | 镜像浅析,以及制作自己的镜像
|
Java Docker 容器
《阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库》电子版地址
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库
191 0
《阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库》电子版地址
|
Java 应用服务中间件 Shell
Docker commit 制作镜像|学习笔记
快速学习Docker commit 制作镜像
281 0
Docker commit 制作镜像|学习笔记
|
NoSQL 关系型数据库 MySQL
Windows10环境下制作SpringBoot项目的Docker镜像以及与宿主机上MySQL、Redis进行桥接通信
Windows10环境下制作SpringBoot项目的Docker镜像以及与宿主机上MySQL、Redis进行桥接通信
327 0
Windows10环境下制作SpringBoot项目的Docker镜像以及与宿主机上MySQL、Redis进行桥接通信
|
网络协议 关系型数据库 MySQL
Docker-04:Docker制作镜像
利用Docker命令构建镜像或者制作镜像的两种常见的方式
189 0
Docker-04:Docker制作镜像
|
Java 程序员 Linux
自己动手制作elasticsearch的ik分词器的Docker镜像
本文制作出集成了ik分词器的elasticsearch镜像,这样每个容器运行的时都自带了ik分词器
427 0
自己动手制作elasticsearch的ik分词器的Docker镜像
热门文章
最新文章
推荐文章
更多