欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Dockerfile构建MySQL镜像(练习三)

Dockerfile构建MySQL镜像(练习三)

2025/3/9 10:27:06 来源:https://blog.csdn.net/weixin_72819498/article/details/146072902  浏览:    关键词:Dockerfile构建MySQL镜像(练习三)

目录

环境准备:

(1)保证拥有docker环境

(2)拥有centos基础镜像

(2)可以联网

1.创建工作目录

2.在工作目录中创建并编写Dockerfile文件

3.准备脚本

4.使用Dockerfile生成镜像

5.使用新镜像运行容器测试

6.验证

6.导出保存


环境准备:

(1)保证拥有docker环境

docker -v

(2)拥有centos基础镜像

docker images | grep centos

(2)可以联网

ping -c3 www.baidu.com

1.创建工作目录

mkdir mysql ; cd mysql

2.在工作目录中创建并编写Dockerfile文件

介绍:MariaDB 是一款开源的关系型数据库管理系统,与 MySQL 高度兼容可作为 MySQL 的替代品。

vim dockerfile
#定义基础镜像
FROM centos:latest#维护者信息(可缺省)
MAINTAINER devopsxjh#添加备注信息(可缺省)
LABEL user="devopsxjh"\gronp="CSDN"#暴露端口
EXPOSE 3306#设置数据库用户变量, 让其支持中文
ENV MYSQL_ROOT=root \MYSQL_PASS=admin123 \LC_ALL=en_US.UTF-8#更改时区并更换yum源安装mariadb
RUN <<EOT bash
rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install mariadb mariadb-server net-tools
#清理yum缓存, 减少镜像占用空间
yum clean all && rm -rf /var/cache/yum/*
EOT#上传脚本
ADD *.sh /root#增加脚本权限
RUN <<END bash
chmod 775 /root/db_init.sh
RUN chmod 775 /root/run.sh
/root/db_init.sh
END#启动容器时执行
CMD ["mysqld_safe"]

3.准备脚本

vim db_init.sh
#!/bin/bash
#初始化数据库指定文件所有者为mysql
mysql_install_db --user=mysql
sleep 2#启动mysql,以守护进程的方式并放到后台运行
mysqld_safe &
sleep 2#在命令行中执行sql语句(-e选项),设置用户密码
mysql -e "use mysql; grant all privileges on *.* to '$MYSQL_ROOT'@'%' identified by '$MYSQL_PASS' with grant option;"
mysql -e "use mysql; update user set password=password('$MYSQL_PASS') where user='$MYSQL_USER' and host='$(hostname)';"#刷新授权
mysql -e "flush privileges;"

4.使用Dockerfile生成镜像

命令语法:

docker build [选项] 镜像名:标签 文件路径

docker build -t mariadb:t1 ./

5.使用新镜像运行容器测试

#运行容器镜像

docker run -d -p 43306:3306 --name mysql_t1 mariadb:t1

#查看容器是否启动

docker ps

#查看端口映射

netstat -anput|grep ':43306'

6.验证

#测试远程访问

mysql -uroot -p'admin123' -h 192.168.100.101 -P 43306

6.导出保存

docker save -o mariadb:t1 mariadb

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词