整理了一下文档  今天来构建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 

查看一下运行状态:

连续测试一下:

最新文章

  1. 2、C#核心编程结构
  2. C#调用SQL中的存储过程中有output参数,存储过程执行过程中返回信息
  3. CIDR风格
  4. Go http共享
  5. 关于tableview内cell自定义的注册以及创建
  6. javascript: detect mobile devices or browser
  7. OD使用心得
  8. 3月2日 Linked List Cycle
  9. R语言实战读书笔记2—创建数据集(上)
  10. Souerce 之 图片格式
  11. Python学习笔记10-Python MysqlHelper ,MySql 辅助类
  12. ASP.NET Core: Getting Started with ASP.NET MVC Core
  13. 阿里宣布Atlas正式开源:带你重返App开发的田园时代
  14. IDEA 编译等级与源代码等级不一致问题
  15. 图书管理系统设置登录验证(cookies)
  16. mysql中各种日期数据类型及其所占用的空间
  17. Python 处理 json
  18. win10 同步批处理禁用和启用网卡
  19. sudo执行命令允许教程
  20. unity 中 Tilemap的使用 笔记

热门文章

  1. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件
  2. ssm 框架 使用ajax异步,实现登陆
  3. 使用eclipse创建一个简单的Java Web应用程序
  4. 解决IE打开时,弹出的提示调用active的问题,阻止js运行。
  5. 移动端一像素边框解决方案[css scale]
  6. 125、Java面向对象之引用传递实例三,int类型按值传递
  7. 测试人员如何使用Git
  8. 对简易网页版注册系统的制作(连接MySQL数据库)
  9. MySQL操作之DML
  10. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:让按钮看起来像个链接 (仍然保留按钮行为)