目录
Dockerfile构建MySQL镜像
1、建立工作目录
2、编写Dockerfile文件
3、构建镜像
4、测试容器
Dockerfile构建MySQL镜像
1、建立工作目录
[root@huyang1 ~]# mkdir mysql
[root@huyang1 ~]# cd mysql/
2、编写Dockerfile文件
[root@huyang1 mysql]# vim Dockerfile
配置如下:(可以更具自身所需改变启动脚本的文件名称,如我就是改成了mysql.sh)
FROM centos:7
MAINTAINER Crushlinux <crushlinux@163.com>#安装mariadb数据库
RUN yum install -y mariadb mariadb-server mariadb-devel #设置环境变量,便于管理
ENV MARIADB_USER root
ENV MARIADB_PASS 123456#让容器支持中文
ENV LC_ALL en_US.UTF-8#初始化数据库
ADD db_init.sh /root/db_init.sh
RUN chmod 775 /root/db_init.sh && /root/db_init.sh#导出端口
EXPOSE 3306#设置默认启动命令
CMD ["mysqld_safe"]
[root@localhost mysql]# vim mysql.sh
配置启动脚本如下:(可以更具自身所需改变启动脚本的文件名称,如我就是改成了mysql.sh)
#!/bin/bash
mysql_install_db --user=mysql
sleep 3
mysqld_safe &
sleep 3
mysql -e "use mysql; grant all privileges on *.* to '$MARIADB_USER'@'%' identified by '$MARIADB_PASS' with grant option;"
h=$(hostname)
mysql -e "use mysql; update user set password=password('$MARIADB_PASS') where user='$MARIADB_USER' and host='$h';"
mysql -e "flush privileges;"
3、构建镜像
[root@huyang1 mysql]# docker build -t mysql:new .
[root@huyang1 mysql]# docker run -d -p 3306:3306 --name mysql-test mysql:new
4、测试容器
[root@huyang1 mysql]# yum -y install mariadb mariadb-devel
[root@huyang1 mysql]# mysql -h 192.168.200.111 -u root -P 3306 -p123456