Docker中怎么构建MariaDB镜像
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本文小编为大家详细介绍"Docker中怎么构建MariaDB镜像",内容详细,步骤清晰,细节处理妥当,希望这篇"Docker中怎么构建MariaDB镜像"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢
千家信息网最后更新 2025年02月02日Docker中怎么构建MariaDB镜像
本文小编为大家详细介绍"Docker中怎么构建MariaDB镜像",内容详细,步骤清晰,细节处理妥当,希望这篇"Docker中怎么构建MariaDB镜像"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
基于commit命令方式创建
docker的安装
[root@test01 ~]# yum install docker[root@test01 ~]# systemctl enable docker[root@test01 ~]# systemctl start docker
下载本地镜像
[root@test01 ~]# docker pull centos:7.4.1708[root@test01 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/centos 7.4.1708 3afd47092a0e 3 months ago 196.6 MB
创建交互型容器
[root@test01 ~]# docker run -it --name="mysql_server" centos /bin/bash
安装mariadb服务
[root@e8126d0481d2 /]# yum -y install mariadb-server net-tools
初始化mariadb
[root@e8126d0481d2 /]# mysql_install_db --user=mysql
后台启动mariadb服务
[root@e8126d0481d2 /]# mysqld_safe &[1] 114[root@e8126d0481d2 /]#180210 13:45:27 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.180210 13:45:27 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql[root@e8126d0481d2 /]# netstat -tunplActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
创建mariadb登录密码,并可以指定ip登录
[root@e8126d0481d2 /]# mysqladmin -u root password '123456'[root@e8126d0481d2 /]# mysql -u root -pEnter password:MariaDB [(none)]> show databases;MariaDB [(none)]> use mysql;MariaDB [mysql]> select Host from user where user='root';MariaDB [mysql]> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;MariaDB [mysql]> update user set password=password('123456') where user='root' and host='e8126d0481d2';MariaDB [mysql]> flush privileges;MariaDB [mysql]> exit
容器登录验证
[root@e8126d0481d2 /]# mysql -u root -h 172.17.0.2 -pEnter password:MariaDB [(none)]> exit
创建容器启动脚本
[root@e8126d0481d2 ~]# cat run.sh#!/bin/shmysqld_safe
创建镜像
[root@test01 ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESe8126d0481d2 centos "/bin/bash" 11 minutes ago Exited (0) 8 seconds ago mysql_server[root@test01 ~]# docker commit mysql_server mariadb:1.0
创建容器
[root@test01 ~]# docker run -d -p 13306:3306 mariadb:1.0 /root/run.sh[root@test01 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESeed3e88a1261 mariadb:1.0 "mysqld_safe" 4 seconds ago Up 3 seconds 0.0.0.0:13306->3306/tcp romantic_hamilton
主机登录验证
[root@test01 ~]# yum -y install mariadb[root@test01 ~]# mysql -u root --port=13306 -pMariaDB [(none)]>
基于Dockerfile方式创建
设置创建目录和文件[root@test01 ~]# mkdir mariadb_dockerfile && cd mariadb_dockerfile[root@test01 mariadb_dockerfile]# touch db_init.sh[root@test01 mariadb_dockerfile]# touch run.sh编辑Dockerfile等文件Dockerfile[root@test01 mariadb_dockerfile]# cat Dockerfile#使用的基础镜像FROM centos:7.4.1708#添加作者信息MAINTAINER liuxin 842887233@qq.com#安装mariadb数据库RUN yum -y install mariadb-server#设置环境变量,便于管理ENV MARIADB_USER rootENV MARIADB_PASS 123456#让容器支持中文ENV LC_ALL en_US.UTF-8#初始化数据库ADD db_init.sh /root/db_init.shRUN chmod 775 /root/db_init.shRUN /root/db_init.sh#导出端口EXPOSE 3306#添加启动文件ADD run.sh /root/run.shRUN chmod 775 /root/run.sh#设置默认启动命令CMD ["/root/run.sh"]db_init.sh[root@test01 mariadb_dockerfile]# cat db_init.sh#!/bin/bashmysql_install_db --user=mysqlsleep 3mysqld_safe &sleep 3#mysqladmin -u "$MARIADB_USER" password "$MARIADB_PASS"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;"run.sh[root@test01 mariadb_dockerfile]# cat run.sh#!/bin/bashmysqld_safe
创建镜像
[root@test01 mariadb_dockerfile]# docker build -t liuxin/centos-mariadb:v1 ./
创建容器
[root@test01 mariadb_dockerfile]# docker run -d -p 13306:3306 liuxin/centos-mariadb:v1 /root/run.sh[root@test01 mariadb_dockerfile]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES7743527ac603 liuxin/centos-mariadb:v1 "/root/run.sh" 5 seconds ago Up 3 seconds 0.0.0.0:13306->3306/tcp nostalgic_mirzakhani
登录验证
[root@test01 mariadb_dockerfile]# mysql -uroot -h 127.0.0.1 --port=13306 -pEnter password:Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 1Server version: 5.5.56-MariaDB MariaDB ServerCopyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> exit
读到这里,这篇"Docker中怎么构建MariaDB镜像"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
镜像
容器
登录
文件
文章
验证
内容
命令
数据
数据库
方式
服务
妥当
主机
作者
信息
变量
后台
基础
密码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
在金蝶做软件开发
阿里云服务器学生一元是什么
软件开发c语言岗位职责
零极分布式网络技术推广
广州互联网科技学院学费
网络安全认证讲师
万得数据库如何求平均收益率
海尔中级软件开发工程师
茅箭区信息软件开发包括哪些
游戏软件开发工程师助理实习报告
平台软件开发学习
软件开发各种图制作
数据库系统概念 下载
调解平台软件开发
网络安全风险评估包括
企业网络安全责任督查检查制度
web3服务器
网络安全技术示范项目申报书
滞留缅北中国人大数据库
英雄联盟马来西亚服务器有人玩么
web空间服务器密码是什么
实体网络技术公司
软件开发定制报价明细有哪些
什么软件开发aspx界面
言语笔记软件开发
永辉 礼品卡 服务器
金华ftp服务器
网络安全就是网络数据安全吗
数据库之间直接迁移
服务器进程是后台进程吗