制作mariadb容器镜像
环境准备:
Centos7.5 docker-ce
镜像准备:
centos:lastest
软件准备:
gpmall.sql
思路
1.确定基础镜像
2.确定mariadb的安装方式
3.初始化mariadb
4.暴露端口启动mariadb
5.构建镜像
1.确定基础镜像
这里使用的基础镜像为centos:laster
Dockerfile:
FROM centos:latest
MAINTAINER luoxi
2.确定mariadb安装方式
这里选择使用yum的安装方式,由于是测试环境无外网,将本地yum的配置为ftp拷贝到容器内
1.删除原有的yum
rm -f /etc/yum.repos.d/*
2.将现有的yum拷贝到容器内
local.repo
[centos]
name=centos
baseurl=file:///192.168.1.1/centos
gpgcheck=0
3.安装mariadb
yum install mariadb-server -y
Dockerfile:
RUN rm -f /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
RUN yum install mariadb-server -y
3.初始化mariadb
初始化是部署完应用后进入使用前重要的一步
初始化:
mysql_install_db --user=mysql
配置用户密码
由于mariadb容器一般都是远程连接使用,所以我们创建用户一般创建要赋予远程权限
mysqld_safe &
mysql -e "grant all on *.* to root@'%' identified by '123456';"
创建数据库导入数据库表
mysql -e "create database gpmall;"
mysql -D gpmall < /opt/gpmall.sql
db_init.sh
mysql_install_db --user=mysql
sleep 3
mysqld_safe &
sleep 3
mysql -e "grant all on *.* to root@'%' identified by '123456';"
mysql -e "create database gpmall;"
mysql -D gpmall < /opt/gpmall.sql
4.暴露端口启动mariadb
启动容器内的服务必须为前台启动所以我们使用 mysqld_safe作为启动方式
EXPOSE 3306
CMD ["mysqld_safe"]
整合Dockerfile
FROM centos:lastest
MAINTAINER luoxi
RUN rm -f /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
RUN yum install mariadb-server -y
ADD db_init.sh /root/
RUN chmod 755 /root/db_init.sh
ADD gmall.sql /opt/
RUN bash /root/db_init.sh
EXPOSE 3306
CMD ["mysqld_safe"]
构建mariadb镜像
进入Dockerfile所在的目录执行
docker build -t mariadb .