背景:

现如今不管什么服务和应用基本都可以在docker里跑一跑了,但是在我个人的印象中,像数据库这种比较重要大型且数据容易受伤的应用是不适合在docker里跑的。但是也有很多人尝试在docker中跑mysql等数据库,所以也试着尝试一下。(好吧,重点是领导喜欢~~)
获取镜像:
mysql的镜像可以自己用dockerfile制作一个,或者直接到官方的docker镜像库中下载,本文用的是官方镜像。
# docker pull mysql # docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/mysql latest d9124e6c552f 12 days ago 383.4 MB
运行容器:
1:正常运行。
启动容器:
# docker run --name cmh-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d docker.io/mysql
进入容器:
# docker-enter cmh-mysql
进入mysql:
root@3a2b8ab0d971:~# mysql -u root -pmy-secret-pw mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.16 MySQL Community Server (GPL) Copyright (c) 2000, 2016,Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
以上就创建了一个mysql的docker容器,可以看到版本为5.7.16。但是这样创建的容器有两个问题,一是容器删除后,数据就丢失了,二是要访问数据库,必须进入到容器里面才可以。
2:持久化数据,映射开放mysql端口
创建宿主机数据存放目录:
# mkdir -p /opt/data/mysql
启动容器:
# docker run --name cmh-mysql -v /opt/data/mysql/:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d docker.io/mysql
c38f50a540ff4d5ecf1a5ec49fb721335a8e1b79dec58229cf5e00553f988e44
查看容器:
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c38f50a540ff docker.io/mysql "docker-entrypoint.sh" 9 seconds ago Up 8 seconds 0.0.0.0:3306->3306/tcp cmh-mysql
查看端口:
# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::3306 :::* LISTEN 28657/docker-proxy
查看宿主机上的mysql数据:
# cd /opt/data/mysql # ll total 188452 -rw-r-----. 1 systemd-bus-proxy ssh_keys 56 Dec 6 16:01 auto.cnf -rw-r-----. 1 systemd-bus-proxy ssh_keys 1325 Dec 6 16:01 ib_buffer_pool -rw-r-----. 1 systemd-bus-proxy ssh_keys 79691776 Dec 6 17:16 ibdata1 -rw-r-----. 1 systemd-bus-proxy ssh_keys 50331648 Dec 6 17:16 ib_logfile0 -rw-r-----. 1 systemd-bus-proxy ssh_keys 50331648 Dec 6 16:01 ib_logfile1 -rw-r-----. 1 systemd-bus-proxy ssh_keys 12582912 Dec 6 17:16 ibtmp1 drwxr-x---. 2 systemd-bus-proxy ssh_keys 4096 Dec 6 16:01 mysql drwxr-x---. 2 systemd-bus-proxy ssh_keys 8192 Dec 6 16:01 performance_schema drwxr-x---. 2 systemd-bus-proxy ssh_keys 8192 Dec 6 16:01 sys
-p 3306:3306把容器的mysql端口3306映射到宿主机的3306端口,这样想访问mysql就可以直接访问宿主机的3306端口。
-v /opt/data/mysql:/var/lib/mysql,即把宿主机/opt/data/mysql/目录映射到容器的/var/lib/mysql目录。
注意事项:
1:在使用-v选项映射目录时,宿主机需关闭SElinux:
# setenforce 0
或者给数据目录添加相关selinux权限:
# chcon -Rt svirt_sandbox_file_t /my/own/datadir
2:-v 选项原本是把宿主机的目录映射进容器,但是在本文中,是反过来的。即是把容器中的目录映射出宿主机,这是因为官方镜像在制作的时候使用了VOLUME /var/lib/mysql选项。这使得容器中/var/lib/mysql成为一个单独的卷组,在使用挂载选项-v时,就可以把该目录映射出宿主机。
可以参考官方mysql镜像的dockerfile:
https://github.com/docker-library/mysql/blob/4dd33136c4739667a223d39b6f829beb27b235cf/5.7/Dockerfile
DOCKER介绍 点击查看
Docker从入门到实践 点击查看
# docker
# 运行mysql
# 运行mysql镜像
# docker启动mysql服务
# Docker创建一个mysql容器并保存为本地镜像
# docker官方mysql镜像自定义配置详解
# 解决docker拉取mysql镜像太慢的情况
# 详解docker 制作mysql镜像并自动安装脚本
# docker安装mysql、redis镜像方式
# docker拉取MySQL8.0镜像以及安装的完整步骤
# 镜像
# 点击查看
# 就可以
# 的是
# 也有
# 在我
# 一是
# 很多人
# 才可以
# 现如今
# 可以看到
# 好吧
# 跑了
# 成为一个
# 不适合
# 即是
# 本是
# 试着
# 这是因为
# 机上
相关文章:
如何快速搭建高效香港服务器网站?
常州企业网站制作公司,全国继续教育网怎么登录?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
利用JavaScript实现拖拽改变元素大小
建站之星官网登录失败?如何快速解决?
模具网站制作流程,如何找模具客户?
,如何利用word制作宣传手册?
如何快速生成高效建站系统源代码?
装修招标网站设计制作流程,装修招标流程?
如何用PHP工具快速搭建高效网站?
建站之星2.7模板:企业网站建设与h5定制设计专题
C#怎么使用委托和事件 C# delegate与event编程方法
西安大型网站制作公司,西安招聘网站最好的是哪个?
教学网站制作软件,学习*后期制作的网站有哪些?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
购物网站制作公司有哪些,哪个购物网站比较好?
5种Android数据存储方式汇总
如何在阿里云购买域名并搭建网站?
详解jQuery中基本的动画方法
常州企业建站如何选择最佳模板?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
青岛网站建设如何选择本地服务器?
建站主机与虚拟主机有何区别?如何选择最优方案?
网站制作说明怎么写,简述网页设计的流程并说明原因?
定制建站流程解析:需求评估与SEO优化功能开发指南
SQL查询语句优化的实用方法总结
如何快速生成凡客建站的专业级图册?
建站之星代理平台如何选择最佳方案?
电商平台网站制作流程,电商网站如何制作?
如何零成本快速生成个人自助网站?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
想学网站制作怎么学,建立一个网站要花费多少?
c++怎么用jemalloc c++替换默认内存分配器【性能】
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
开心动漫网站制作软件下载,十分开心动画为何停播?
Python如何创建带属性的XML节点
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
PHP正则匹配日期和时间(时间戳转换)的实例代码
大连网站设计制作招聘信息,大连投诉网站有哪些?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
动图在线制作网站有哪些,滑动动图图集怎么做?
如何在建站主机中优化服务器配置?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
个人网站制作流程图片大全,个人网站如何注销?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
*请认真填写需求信息,我们会在24小时内与您取得联系。