首页 > 问答 > 关键词  > docker最新资讯  > 正文

docker怎么安装MySQL docker安装MySQL教程

2020-07-01 10:52 · 稿源:数据库干货铺

MySQL放进Docker,总共需要几步?本次就通过社区版容器安装2个mysql实例,看一下部署有多简单。

1、 安装docker

操作系统我使用的Centos7 x64 系统,而Docker 目前看仅CentOS 7 及以上版本。本次采用Docker 仓库进行安装 ,具体步骤如下:

1.1设置仓库

因本机首次安装 Docker,所以需要先设置 Docker 仓库,以后的安装可以直接从仓库安装。

/*安装所需的软件包*/yuminstall-yyum-utils\
device-mapper-persistent-data\
lvm2

使用以下命令来设置稳定的仓库

yum-config-manager\>--add-repo\>https://download.docker.com/linux/centos/docker-ce.repo

1.2安装Docker Engine-Community

安装最新版本的 Docker Engine-Community 和 containerd

yuminstalldocker-cedocker-ce-clicontainerd.io

这一步有的包下载可能比较慢,要耐心等待,如果失败再重新执行几遍。

如果有同学配置了多个 Docker 仓库,而且在 yum install 或 yum update 命令中未指定版本时,则会安装或更新最新版本的包,如果对稳定性 或版本有要求,则安装时一定要指定特定版本。

1.3 启动docker

经过上述安装后,启动docker服务即可

systemctlstartdocker

1.4 测试docker 部署是否成功

可以运行经典的hello-world 来测试

可见docker已部署成功并可以正常运行。

2、 部署MySQL

2.1 查看可用的mysql镜像

[root@c7_2local]#dockersearchmysql
NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED
mysqlMySQLisawidelyused,open-sourcerelation…9453[OK]
mariadbMariaDBisacommunity-developedforkofMyS…3415[OK]
mysql/mysql-serverOptimizedMySQLServerDockerimages.Create…691[OK]
centos/mysql-57-centos7MySQL5.7SQLdatabaseserver75mysql/mysql-clusterExperimentalMySQLClusterDockerimages.Cr…68centurylink/mysqlImagecontainingmysql.Optimizedtobelink…61[OK]
deitch/mysql-backupREPLACED!Pleaseusehttp://hub.docker.com/r…41[OK]bitnami/mysqlBitnamiMySQLDockerImage39[OK]
tutum/mysqlBasedockerimagetorunaMySQLdatabasese…35schickling/mysql-backup-s3BackupMySQLtoS3(supportsperiodicbackup…30[OK]
prom/mysqld-exporter27[OK]
linuxserver/mysqlAMysqlcontainer,broughttoyoubyLinuxSe…25centos/mysql-56-centos7MySQL5.6SQLdatabaseserver19circleci/mysqlMySQLisawidelyused,open-sourcerelation…19databack/mysql-backupBackupmysqldatabasesto...anywhere!17mysql/mysql-routerMySQLRouterprovidestransparentroutingbe…15arey/mysql-clientRunaMySQLclientfromadockercontainer14[OK]
openshift/mysql-55-centos7DEPRECATED:ACentos7basedMySQLv5.5image…6fradelg/mysql-cron-backupMySQL/MariaDBdatabasebackupusingcrontas…6[OK]
genschsa/mysql-employeesMySQLEmployeeSampleDatabase5[OK]
devilbox/mysqlRetaggedMySQL,MariaDBandPerconaDBoffici…3ansibleplaybookbundle/mysql-apbAnAPBwhichdeploysRHSCLMySQL2[OK]
jelastic/mysqlAnimageoftheMySQLdatabaseservermainta…1widdpim/mysql-clientDockerizedMySQLClient(5.7)includingCurl…0[OK]
monasca/mysql-initAminimaldecoupledinitcontainerformysql0

复制代码

2.2 部署最新版本mysql

拉取最新版本mysql,不指定版本默认拉取最新版

[root@c7_2local]#dockerpullmysql
Usingdefaulttag:latest
latest:Pullingfromlibrary/mysql
54fec2fa59d0:Pullcomplete
bcc6c6145912:Pullcomplete
951c3d959c9d:Pullcomplete
05de4d0e206e:Pullcomplete
319f0394ef42:Pullcomplete
d9185034607b:Pullcomplete
013a9c64dadc:Pullcomplete
42f3f7d10903:Pullcomplete
c4a3851d9207:Pullcomplete
82a1cc65c182:Pullcomplete
a0a6b01efa55:Pullcomplete
bca5ce71f9ea:Pullcomplete
Digest:sha256:61a2a33f4b8b4bc93b7b6b9e65e64044aaec594809f818aeffbff69a893d1944
Status:Downloadednewerimageformysql:latest
docker.io/library/mysql:latest

注: 拉取镜像的时候容易出现如下超时错误

Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceled(Client.Timeoutexceededwhileawaitingheaders)

建议修改国内镜像地址,例如修改为网易或阿里云的镜像地址(我采用的是个人阿里镜像的方式, 下载速度很理想,基本一分钟内下载完毕)

修改源的方法:

vim/etc/docker/daemon.json/*添加如下内容*/
{"registry-mirrors":["http://hub-mirror.c.163.com","https://registry.docker-cn.com"]
}

使用阿里云镜像需要自己登录到阿里云,配置后复制自己的地址再使用,需要的小伙伴可以联系我获取指引。

2.3 查看已下载的镜像

[root@c7_2containers]#dockerimagels#或使用dockerimages查看
REPOSITORYTAGIMAGEIDCREATEDSIZEmysqllatesta7a67c95e8317daysago541MBhello-worldlatestbf756fb1ae654monthsago13.3kB

2.4 运行mysql容器

[root@c7_2local]#dockerrun-di--name=mysql-p3306:3306-eMYSQL_ROOT_PASSWORD=Admin@123mysql
9f6668b5d0292b30308cfc5c6a6b88a34c4d62d9e5c70dff9bfce9f090117968

其中主要参数说明如下:

  • --name 后面配置容器名
  • -p代表端口映射, 格式为 宿主机映射端口:容器运行端口
  • -e代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登陆密码
  • 最后的mysql代码容器镜像名

启动成功后

2.5 进入mysql容器

指定进入mysql容器中

[root@c7_2local]#dockerexec-itmysql/bin/bash
root@9f6668b5d029:/#

在容器内登录mysql

root@9f6668b5d029:/#mysql-uroot-p'Admin@123'

结果见如下截图,可以看到部署的是最新的MySQL8.0. 20 版本

注: MySQL8.0 用户的加密组件做了变更,低版本客户端登录会报错。处理的方式有多种,主要的方式有 2 种:

  • 修改对应用户的密码加密方式
  • 升级客户端或驱动

具体方式可参考MySQL8. 0 用户登录那些事

2.6 再部署一个mysql5. 7 的容器

上面部署的是最新版mysql8.0.20,想部署5. 7 版本该如何部署?其实就是拉取镜像的时候指定选择MySQL5. 7 版本的即可。具体步骤如下:

拉取mysql5. 7 版本镜像

[root@c7_2local]#dockerpullcentos/mysql-57-centos7
Usingdefaulttag:latest
latest:Pullingfromcentos/mysql-57-centos7
d8d02d457314:Pullcomplete
a11069b6e245:Pullcomplete
596303fb1aa3:Pullcomplete
a29499e779a7:Pullcomplete
17d1a52c2e00:Pullcomplete
ed24591227fe:Pullcomplete
de0ad46e3ed9:Pullcomplete
c62e4a984a9c:Pullcomplete
01d54c6bda68:Pullcomplete
Digest:sha256:e08ee4d43b7356607685b69bde6335e27cf20c020f345b6c6c59400183882764
Status:Downloadednewerimageforcentos/mysql-57-centos7:latest
docker.io/centos/mysql-57-centos7:latest

运行mysql5. 7 的docker

dockerrun-di--name=mysql5.7-p3307:3306-eMYSQL_ROOT_PASSWORD=Admin@123centos/mysql-57-centos7

不进入容器,在本地或其他机器上登录mysql5.7

[root@c7_2local]#/usr/local/mysql5.7/bin/mysql-uroot-p'Admin@123'-P3307-h192.168.28.129mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.
WelcometotheMySQLmonitor.Commandsendwith;or\g.
YourMySQLconnectionidis11Serverversion:5.7.24MySQLCommunityServer(GPL)
Copyright(c)2009-2019PerconaLLCand/oritsaffiliates
Copyright(c)2000,2019,Oracleand/oritsaffiliates.Allrightsreserved.
OracleisaregisteredtrademarkofOracleCorporationand/orits
affiliates.Othernamesmaybetrademarksoftheirrespective
owners.
Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.
mysql>selectversion();+-----------+
|version()|
+-----------+
|5.7.24|
+-----------+1rowinset(0.01sec)
mysql>

可以看到 该版本为MySQL 社区版的5.7.24

2.7 查看正在运行的docker

查看一台机器上运行的docker信息可以通过 docker ps 命令查看

本地端口信息如下

3、结语

将MySQL放进docker主要就这几步。不过其中修改数据库配置文件等相关内容本次来不及细说,有兴趣的同学可以自行测试,相对也必将简单,可以在启动的时候指定。

本文转载自微信公众号【数据库干货铺】。

举报

  • 相关推荐
  • 大家在看
  • 【腾讯云】618年中专享优惠抢先看,价值1206元礼券一键领取

    腾讯云618采购采购季,云服务器多种机型限时抢购,产品首购低至1折,续费最高享3.6折优惠。,专业技术7*24小时在线服务,腾讯云为企业和个人提供快捷,安全,稳定的云服务!

    广告
  • 遭弃用的Docker Desktop放大招:宣布支持Linux

    想使用 Desktop for Linux 的用户可访问Docker docs(https://docs.docker.com/desktop/linux/)以查看相关说明...Docker Desktop for Linux 的近期计划包括使安装和更新过程尽可能无缝,例如使用一个命令安装,如 apt-get install docker-desktop......

  • 沃尔玛正在为全美各地仓库安装Symbotic机器人

    据TechCrunch报道,仓库机器人技术资金大量涌入的背后,主要由亚马逊实体的推动...2021年底,位于马萨诸塞州的Symbotic公司宣布打算通过SPAC上市,这在很大程度上是基于该公司与沃尔玛正在进行的一项交易的势头,该交易将其仓库机器人技术带到了沃尔玛的25个配送中心...与此沃尔玛一直在与一些不同的机器人公司建立合作关系,包括GreyOrange,它正在为该公司的加拿大子公司提供装备...

  • 非官方有意为之:重新安装苹果音乐会踢掉Dock栏中的其他应用

    Apple Music的一个错误让一些iPhone用户感到困惑。根据各种报告,Apple Music iOS应用在下载时直接安装到iPhone的底部位置,而不是手机的主屏幕上。据悉,它会踢掉用户在其底部上设置的其他应用并占据了它们的位置,这不是应用通常会做的事情。一些iPhone用户还发现,这个错误导致Apple Music成为Siri请求的默认音乐服务--即使之前他们已经配置了其他服务如Spotify。目前还不清楚这个错误有多普遍。然而已经看到的是,这个问题出现在iOS 15的不同版本中,所以它似乎跟最近的iOS更新没有关系。另外,它也被认为影响了不同的iPhone型号。苹?

  • 已有200名志愿者为小米的"Own My Voice"项目捐赠声音特征

    随着对残疾用户的认识不断提高和技术的进步,许多科技公司和组织已经开始超越认识,进入主动迎接这一群体的阶段。而且,随着这种接受,我们现在看到的创新是为了增强无障碍性,并为每个人提供机会,让他们参与到发展一个人人共享的包容性社会中来。小米公司通过其"拥有我的声音"(Own My Voice)项目,在使技术对每个人都无障碍方面做出了最新的努力,该项目将自主开发的语音技术与先进的算法相结合,为有语言障碍的用户提供了文本到语音的解决方案。小米科技委员会的科技公益专题召集人Zhu Xi在谈到启动该项目的原因时说。我们很高兴能探

  • Microsoft Store应用在近两代英特尔酷睿和AMD锐龙计算机上安装失败

    Microsoft Store应用在英特尔第11、12代酷睿和AMD Ryzen5000、6000计算机上安装失败...这个问题是在安装KB5011831Windows10版本后出现的...在AMD方面,Zen3锐龙5000和最新的Zen3+ Ryzen6000系列CPU受到影响...0xC002001B,当试图从微软商店安装时,一些应用程序也可能无法打开...

  • 微软控屏神器“快速助手”不再默认默认安装:引发管理员不满

    不少人在通过远程控屏的方式,帮助小白”用户处理电脑问题时,都会让对方按住Ctrl+Win+Q”,呼出自带的快速助手,进行连接并控屏...微软为快速助手”进行了更新,带来了新的图标和优化的却将软件上架了Win11/10的应用商店,这意味着它将不再是系统的默认预装应用...管理员指出,新版的快速助手不仅需要手动下载,还需要管理员权限才能够安装,这导致了大量无意义的麻烦,也容易出现各种预料之外的问题...官方还表示,旧版的快速助手将会在5月中旬停止服务,届时用户必须在商店下载或升级新版才能够正常使用......

  • ABB在挪威安装了首批Terra 360充电桩

    第一批充电器是跟Eviny网络合作在挪威安装的,地点是卑尔根的Oasen购物中心和挪威滑雪胜地Geilo...实际上,有一个带有额外直流和额外交流充电输出的充电器选择,因此在某些情况下,它可能能同时为四辆车充电...但这只是一个营销口号,因为实际的充电功率和续航能力的充电速度更取决于汽车...据ABB称,在Terra 360的试点安装之后,他们将在挪威和瑞典展开更广泛的推广...在挪威,密集的快速充电基础设施是支持电动汽车高销量(2021年约占新车市场的2/3)和到2025年结束汽油和柴油汽车销售的基础之一......

  • 专利显示微软正计划为Xbox Series S推出更灵活安装游戏的方法

    一项新发现的专利表明,微软可能正在设计一款外接驱动器,使其Xbox SeriesS游戏机可以下载安装范围更广的游戏程序。微软的专利概述了一个系统,它并不打算提供一个完整版本的游戏本地安装,而是将外部驱动器将用于验证物理游戏的所有权,然后允许它从游戏机的商店前下载。这个设备将允许Xbox Series S的所有者有可能访问新的和旧的实体游戏,只要这些游戏在Xbox的在线商店中上是可用的。最近的两代游戏机已经见证了市场从基于光盘的实体游戏向直接在游戏机上进行数字下载的转变。虽然有些人仍然坚决支持实体游戏,但这种选择越来越少。许?

  • Pebblebee发布两款支持Find My的可充电追踪器

    随着Pebblebee宣布推出可充电的Pebblebee Clip和Pebblebee Card,苹果的Find My网络正在进一步发展。这两款新设备在苹果的Find My应用和该公司自己的Pebbleebee应用中都得到了原生支持。它们都有不需要更换的可充电电池,而且外形与苹果的AirTag不同。Pebblebee Clip与AirTag最为相似,采用了小圆形设计。但它不同的是,它有一个集成的钥匙孔,这是AirTag需要额外配件的地方。Pebblebee Clip采用全黑色的塑料机身和全金属框架,以保持其安全性,并集成了LED,以帮助在黑暗的地方找到它。它的工作距离最远可达500英尺,有一个响亮的蜂鸣器?

  • F1车手塞巴斯蒂安·维特尔用Find My追踪偷他背包的盗匪

    周一遭遇抢夺后,F1车手塞巴斯蒂安·维特尔试图拿回他的财物,用FindMy应用程序追踪他的AirPods,追赶盗匪。周一上午,在F1西班牙大奖赛结束后,维特尔与家人一起在巴塞罗那的一家酒店停下了他的阿斯顿-马丁并下了车。小偷利用这个机会从车上抢走了一个背包,然后逃走了。据iPadizate报道,这位四届F1冠军试图自己处理这次盗窃事件。维特尔踩上一辆电动滑板车,打开Find My应用程序,追踪包里的AirPods,并同时报警。警方后来加入了维特尔的行列,并建议维特尔不要继续追赶。最终,他们被跟踪信号带到了一家服装店,在那里维特尔发现AirPo

今日大家都在搜的词: