docker容器中怎么创建一个MariaDB镜像
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,docker容器中怎么创建一个MariaDB镜像,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。基于commit 命令 方式创建doc
千家信息网最后更新 2026年10月31日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 images REPOSITORY 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安全错误
数据库的锁怎样保障安全
中关村互联网科技集团
科技赋能下的互联网金融
科技与互联网
猪兼强互联网科技
腾讯科技 互联网女皇
有木互联网科技
卫星互联网科技股票
互联网科技公司需要的职位
现代科技和互联网有关系吗
互联网科技博主是什么意思
996高科技互联网公司
河南住房之家互联网科技
世界互联网领先科技成果获奖
互联网公司高科技产品
梅州GM互联网络科技有限公司
中天科技中国工业互联网
神州科技互联网有限公司
数字科技和互联网金融哪个好
宁波允成互联网科技有限公司
互联网科技快速发展优美句子
咖啡豆
花魁咖啡
互联网属科技
银优互联网科技有限公司
广州互联网络科技有限公司
重庆科技学院互联网
汽车互联网创新科技园
上海同邻互联网科技有限公司规模
昆明中奇联合互联网科技
互联网科技企业文化