整理了一下文档  今天来构建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的更多相关文章

  1. Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis

    整体结构如下图   先来在 172.16.0.200 安装docker-ce (新)或 docker-io(旧)      0: Docker-ce  (新版本  Docker version 17. ...

  2. Docker 搭建开源 CMDB平台 之 “OpsManage”

    说明:  我一次build 完 所以images 包 有1G多   可分层build   bash 环境一层   应用程序及启动脚本(shell.sh) 一层 步骤:           1     ...

  3. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

  4. Spring Cloud和Docker搭建微服务平台

    用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...

  5. 基于docker搭建开源扫描器——伏羲

    基于docker搭建开源扫描器——伏羲 1.简介 项目地址 伏羲是一款开源的安全检测工具,适用于中小型企业对企业内部进行安全检测和资产统计. 功能一览: 基于插件的漏洞扫描功能(类似于巡风) 漏洞管理 ...

  6. Docker搭建代码检测平台SonarQube并检测maven项目

    1 前言 良好的代码习惯是一个优秀程序员应该具备的品质,但靠人的习惯与记忆来保证代码质量,始终不是一件靠谱的事.在计算机行业应该深知,只要是人为的,都会有操作风险.本文讲解如何通过Docker搭建代码 ...

  7. Docker 搭建开源跳板机_jumpserver (运维开源堡垒机_jumpserver) Centos_7.0

    最近看到一个开源项目(jumpserver)  很不错  还是用Docker  部署得 ... 抽了点时间拿来学习一下  部署    分析   简单使用一下  ....好了先搭起来 准备 工作:    ...

  8. 企业安全建设之搭建开源SIEM平台

    https://www.freebuf.com/special/127172.html https://www.freebuf.com/special/127264.html https://www. ...

  9. 企业安全建设之搭建开源SIEM平台(上)

    前言 SIEM(security information and event management),顾名思义就是针对安全信息和事件的管理系统,针对大多数企业是不便宜的安全系统,本文结合作者的经验介绍 ...

随机推荐

  1. Elasticsearch 如何使用RESTful API

    所有其他语言可以使用 RESTful API 通过端口 9200 和 Elasticsearch 进行通信,你可以用你最喜爱的 web 客户端访问 Elasticsearch .事实上,正如你所看到的 ...

  2. 什么是Nib文件

    Nib文件是一种特殊类型的资源文件,它用于保存iPhone OS或Mac OS X应用程序的用户接口.Nib文件是Interface Builder文档.通常您会使用Interface Builder ...

  3. HTML5模板引擎 Thymeleaf 教程(转)

    原文:http://www.open-open.com/lib/view/open1383622135586.html Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非 ...

  4. Linux centosVMware php-fpm的pool、php-fpm慢执行日志、open_basedir

    一.php-fpm的pool vim /usr/local/php/etc/php-fpm.conf//在[global]部分增加 include = etc/php-fpm.d/*.conf mkd ...

  5. CSS垂直居中的8种方法

    CSS垂直居中的8种方法 1.通过verticle-align:middle实现CSS垂直居中. 通过vertical-align:middle实现CSS垂直居中是最常使用的方法,但是有一点需要格外注 ...

  6. ch8 固定宽度、流式、弹性布局

    假设浏览器窗口设置为1250px:wrapper的宽度为960px:content的宽度为920px:确保了wrapper居中时两边有20px的间距:  secondary的宽度为230px:  pr ...

  7. Rcnn/Faster Rcnn/Faster Rcnn的理解

    基于候选区域的目标检测器 1.  滑动窗口检测器 根据滑动窗口从图像中剪切图像块-->将剪切的图像块warp成固定大小-->cnn网络提取特征-->SVM和regressor进行分类 ...

  8. Django 学习之用户认证组件auth与User对象

    一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个. 1 .authenticate() ...

  9. YARN 集群的资源分配

    YARN 集群在分配任务时,存在两种方式 1. DefaultResourceCalculator,只考虑内存(memory),每个 container 的 cpu 资源都分配 1 个. 2. Dom ...

  10. core版本使用ef连接数据库(一)

    参考 参考代码 sqlserver数据库:①Nuget: Microsoft.EntityFrameworkCore.SqlServer ORACLE数据库:①Nuget: Oracle.Entity ...