Docker 搭建开源 CMDB平台 “OpsManage” 之 Mariadb
整理了一下文档 今天来构建mariadb

主机还是 centos 172.16.0.200 构建第二个images
直接shell.sh 完成
#!/bin/bash
echo "----------------demo------------------"
#--------------------new--mysql--dockerfile----------
if [[ ! -e ./Dockerfile ]]; then
cat > ./Dockerfile <<\EOF
FROM docker.io/centos
MAINTAINER Mrchen <@qq.com> ENV DATA_DIR /var/lib/mysql # Install Mariadb
RUN yum install -y mariadb mariadb-server
RUN yum clean all ADD mysqld_charset.cnf /etc/my.cnf.d/ COPY scripts /scripts
RUN chmod +x /scripts/start EXPOSE VOLUME ["/var/lib/mysql"]
CMD ["/bin/bash"]
ENTRYPOINT ["/scripts/start"]
EOF
else
echo "Docker 已经存在"
fi
#---------------new-mysql.config--------------------
if [[ ! -e ./mysqld_charset.cnf ]]; then
cat > ./mysqld_charset.cnf <<\EOF
[mysqld]
character_set_server=utf8
character_set_filesystem=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
init_connect='SET collation_connection = utf8_general_ci'
EOF
else
echo "mysqld.config 已存在!"
fi
#--------------new-start脚本---------------------
if [[ ! -d ./scripts ]]; then
mkdir ./scripts && touch ./scripts/firstrun
cat > ./scripts/start <<\EOF
#!/bin/bash ROOT_USER=${ROOT_USER:-admin}
ROOT_PASS=${ROOT_PASS:-}
#DB user password
SQL_DB=${SQL_DB:-opsmanage}
DB_USER=${DB_USER:-chen}
DB_PASS=${DB_PASS:-} MARIADB_NEW=true run_maria() { # First install mariadb
if [[ ! -d ${DATA_DIR}/mysql ]]; then
echo "===> MariaDB not install..."
echo "===> Initializing maria database... "
mysql_install_db --user=mysql --ldata=${DATA_DIR}
echo "===> System databases initialized..." # Start mariadb
/usr/bin/mysqld_safe --user mysql > /dev/null >& & echo "===> Waiting for MariaDB to start..."
STA=
while [[ STA -ne ]]; do
printf "."
sleep
mysql -uroot -e "status" > /dev/null >&
STA=$?
done
echo "===> Start OK..." # . Create a localhost-only admin account
mysql -u root -e "CREATE USER '$ROOT_USER'@'%' IDENTIFIED BY '$ROOT_PASS'"
mysql -u root -e "CREATE USER '$ROOT_USER'@'localhost' IDENTIFIED BY '$ROOT_PASS'"
mysql -u root -e "CREATE USER '$ROOT_USER'@'127.0.0.1' IDENTIFIED BY '$ROOT_PASS'"
mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO '$DB_USER'@'%' WITH GRANT OPTION" mysql -u root -e "CREATE DATABASE $SQL_DB"
mysql -u root -e "grant all privileges on $SQL_DB.* TO '$DB_USER'@'%' identified by '$DB_PASS'"
echo "===> Create localhost completed..." # shutdown mariadb to wait for supervisor
mysqladmin -u root shutdown else
if [[ -e ${DATA_DIR}/mysql.sock ]]; then
rm -f ${DATA_DIR}/mysql.sock
fi MARIADB_NEW=false echo "===> Using an existing volume of MariaDB"
fi
} #
# When Startup Container script
# if [[ -e /scripts/firstrun ]]; then
# config mariadb
run_maria
rm /scripts/firstrun
else
# Cleanup previous mariadb sockets
if [[ -e ${DATA_DIR}/mysql.sock ]]; then
rm -f ${DATA_DIR}/mysql.sock
fi
fi exec /usr/bin/mysqld_safe EOF
else
echo "Dir scripts 已存在!"
fi
echo "----------mkdir----mysql-----DB----------------"
mkdir -p /data/mysql
echo "------------------run_build--Dockerfile-----------------"
docker build -t python-mariadb:sql-v2 .
echo "------------------run_docker-Images-Mriadb---------------------------------"
docker run --name python-mariadb-v2 --privileged=true -v /data/mysql:/var/lib/mysql -p : -d python-mariadb:sql-v2
说明: 该脚本会在当前目录下检测是否有dockerfile 文件 没完创建 后又生成mariadb 配置文件 并开始 build 得mariadb images run 启
重点在start.sh 该脚本内 会copy(scripts 目录)进容器内为 容器启动时运行脚本 初始化 mariadb 并创建 SQL 库 ’opsmanage‘ ‘DBname’ ‘userName’ ’passwordName‘ 可以在run容器时 用 -e 参数 传进 环境变量 进行修改
并可在宿主机 ll /data/mysql 下查看到 容器是否 有创建opsmanage库 和有没有运行成功! 运行时所生成得 mysql.sock

查看一下运行状态:

连续测试一下:
Docker 搭建开源 CMDB平台 “OpsManage” 之 Mariadb的更多相关文章
- Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis
整体结构如下图 先来在 172.16.0.200 安装docker-ce (新)或 docker-io(旧) 0: Docker-ce (新版本 Docker version 17. ...
- Docker 搭建开源 CMDB平台 之 “OpsManage”
说明: 我一次build 完 所以images 包 有1G多 可分层build bash 环境一层 应用程序及启动脚本(shell.sh) 一层 步骤: 1 ...
- 【译文】用Spring Cloud和Docker搭建微服务平台
by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...
- Spring Cloud和Docker搭建微服务平台
用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...
- 基于docker搭建开源扫描器——伏羲
基于docker搭建开源扫描器——伏羲 1.简介 项目地址 伏羲是一款开源的安全检测工具,适用于中小型企业对企业内部进行安全检测和资产统计. 功能一览: 基于插件的漏洞扫描功能(类似于巡风) 漏洞管理 ...
- Docker搭建代码检测平台SonarQube并检测maven项目
1 前言 良好的代码习惯是一个优秀程序员应该具备的品质,但靠人的习惯与记忆来保证代码质量,始终不是一件靠谱的事.在计算机行业应该深知,只要是人为的,都会有操作风险.本文讲解如何通过Docker搭建代码 ...
- Docker 搭建开源跳板机_jumpserver (运维开源堡垒机_jumpserver) Centos_7.0
最近看到一个开源项目(jumpserver) 很不错 还是用Docker 部署得 ... 抽了点时间拿来学习一下 部署 分析 简单使用一下 ....好了先搭起来 准备 工作: ...
- 企业安全建设之搭建开源SIEM平台
https://www.freebuf.com/special/127172.html https://www.freebuf.com/special/127264.html https://www. ...
- 企业安全建设之搭建开源SIEM平台(上)
前言 SIEM(security information and event management),顾名思义就是针对安全信息和事件的管理系统,针对大多数企业是不便宜的安全系统,本文结合作者的经验介绍 ...
随机推荐
- git rebase 与git merge 小结
git merge是用来合并两个分支的. $ git merge b 将b分支合并到当前分支 同样 $ git rebase b ,也是把 b分支合并到当前分支 ---------------- ...
- Py西游攻关之基础数据类型(一)-数字字符串字节布尔
Py西游攻关之基础数据类型 - Yuan先生 https://www.cnblogs.com/yuanchenqi/articles/5782764.html 数据类型 计算机顾名思义就是可以做数学计 ...
- [Linux] day01——运维
开发和运维,本质都是提供一种服务. ---------------------------------(最终用户)1 应用2 中间件 服务平台 存储 架构 3 操作系统 硬件驱动4 计算机 网络设备 ...
- isEqual判断相等性
1.isEqual方法用来判断两个比较者的内存地址是否一样.为了细分,有isEqualToString.isEqualToNumber.isEuqalToValue等,使用时一定要精确使用,比如虽然N ...
- 配置web应用全局的错误页面
- Java基于redis实现分布式锁(SpringBoot)
前言 分布式锁,其实原理是就是多台机器,去争抢一个资源,谁争抢成功,那么谁就持有了这把锁,然后去执行后续的业务逻辑,执行完毕后,把锁释放掉. 可以通过多种途径实现分布式锁,例如利用数据库(mysql等 ...
- 五 RequestMapping的使用
1 设置路径映射为数组,在Controller类中一个方法对应多个映射路径,可以被多个url访问 2 分目录管理,在Controller类上添加Request Mapping注解,url访问必须添加相 ...
- JSON对象和字符串的收发(JS客户端用typeof()进行判断非常重要)
Ajax前台向后台传递对象: 数据准备 将js对象或者json对象转换为json字符串在Ajax传递,在后台中再将json字符串转换为json对象,再转换为java对象或在前端和后端构造一样的数据结构 ...
- window进行缩放时左侧菜单高度随之变化
window.onresize = function(){ $(); }
- PLSQL Developer配置Oralce11g连接
您的位置:首页 → 资讯教程 → 编程开发 → PLSQL Developer配置Oralce11g连接 PLSQL Developer配置Oralce11g连接 时间:2015/2/3 8:36:2 ...
