MySQL团队维护的MySQL Docker图像专为Linux平台而构建。不支持其他平台,并使用这些MySQL Docker图像的用户以自己的风险为此。看这里的讨论对于在非Linux操作系统上运行这些容器的一些已知限制。
下载MySQL Server Docker映像
对于MySQL Enterprise Edition的用户:需要订阅才能使用MySQL Enterprise Edition的Docker映像。订阅通过带来自己的许可模式;看如何购买MySQL产品和服务有关详细信息。
在单独的步骤中下载服务器映像不是严格必需的;但是,在创建Docker容器之前执行此步骤可确保您的本地图像是最新的。要下载MySQL Community Edition Image,请运行此命令:
Docker Pull MySQL / MySQL-Server:标签
这标签
是您要拉动的图像版本的标签(例如,5.6
那5.7
那8.0
, 或者最新的
)。如果:
被省略了标签
最新的
使用标签,下载了最新的GA版本的MySQL社区服务器的图像。请参阅可用版本的标签列表Docker Hub中的MySQL / MySQL-Server页面。
要从Oracle Container Registry(OCR)下载MySQL Community Edition映像,请运行此命令:
docker pull container-registry.oracle.com/mysql/mysql-server:标签
要从OCR下载MySQL Enterprise Edition Image,您需要首先接受OCR上的许可协议,并使用Docker客户端登录容器存储库:
访问OCRhttps://container-registry.oracle.com/并选择mysql.。
在MySQL存储库列表下,选择
企业服务器
。如果您还没有登录OCR,请单击
页面右侧的按钮,然后在提示时输入您的Oracle帐户凭据。按照页面右侧的说明接受许可协议。
使用Docker客户端登录OCR(
Docker.
命令用来使用docker登录
命令:#docker登录container-registry.oracle.com用户名:Oracle-Account-ID密码:密码登陆成功。
使用此命令从OCR下载MySQL Enterprise Edition的Docker Image:
docker pull container-registry.oracle.com/mysql/enterprise-server:标签
有不同的选择
,对应于OCR提供的不同版本的MySQL Docker图像:标签
8.0
那8.0。
(X
X
是8.0系列中的最新版本号),最新的
:MySQL 8.0,最新的GA5.7
那5.7。
(y
y
是5.7系列中的最新版本号):MySQL 5.7
要下载MySQL Enterprise Edition Image我的Oracle支持网站,进入网站,登录到您的Oracle帐户,并在登录页面上执行以下步骤:
选择
标签。去吧补丁搜索地区和,在搜索选项卡,切换到产品或家庭(高级)子标签。
进入“MySQL服务器“为了 字段,以及所需的版本号 场地。
使用下拉幅度进行其他筛选条选择“Docker.“在文本字段中。
- ,并输入下图显示了MySQL Server 8.0的MySQL Enterprise Edition映像的搜索设置:
点击
按钮,从结果列表中选择所需的版本,然后单击 按钮。在里面文件下载出现的对话框,单击并下载
。压缩
用于Docker映像的文件。
解压缩下载。压缩
存档以获得内部的tarball(MySQL-Enterprise-Server-
),然后通过运行此命令加载图像:版本
。柏油
docker load -i mysql-enterprise-server-版本。柏油
您可以使用此命令列出已下载的Docker映像:
shell> docker图像存储库标签图像ID创建大小mysql / mysql-server最新3157d7f55f8d 4周前241MB
启动MySQL Server实例
要启动MySQL Server的新Docker容器,请使用以下命令:
Docker Run --name =container_name.- restart on-fally -dimage_name.:标签
可以使用图像名称使用Docker映像命令,如上所述下载MySQL Server Docker映像。
这- 名称
选项,用于为服务器容器提供自定义名称,是可选的;如果没有提供容器名称,则会生成随机的。
这- 重新开始
选项用于配置重启政策为你的容器;它应该设置为值失败
,启用对客户端会话中的服务器重新启动的支持(例如,当重新开始声明由客户或期间执行配置InnoDB集群实例)。通过支持重新启用的支持,在客户端会话中发出重新启动会导致服务器和容器停止,然后重新启动。MySQL 8.0.21及更高版本可用于服务器重启的支持。
例如,要为MySQL Community Server启动新的Docker容器,请使用此命令:
docker运行--name = mysql1 - 失败-d mysql / mysql-server:8.0
要使用从OCR下载的Docker Image启动MySQL Enterprise Server的新Docker容器,请使用以下命令:
docker run --name = mysql1 - 失败-d contains-registry.oracle.com/mysql/enterprise-server:8.0
要使用从我的Oracle支持下载的Docker Image的MySQL Enterprise Server启动新的Docker容器,请使用以下命令:
docker运行--name = mysql1 - 失败 - dd mysql /企业 - 服务器:8.0
如果较早的指定名称和标签的Docker映像尚未下载Docker Pull.或者Docker运行命令,现在下载了图像。容器的初始化开始,并且容器出现在运行时运行容器列表中Docker PS.命令。例如:
Shell> Docker PS容器ID图像命令创建状态端口名称A24888F0D6F4 MySQL / MySQL-Server“/entryPoint.sh我...”14秒前Up 13秒(Health:启动)3306 / TCP,33060 / TCP MySQL1
容器初始化可能需要一段时间。当服务器准备好使用时,地位
在输出中的容器Docker PS.命令变更从(健康:开始)
至(健康)
。
这-D.
选项使用Docker运行上面的命令使容器在后台运行。使用此命令监视容器的输出:
docker logs mysql1.
完成初始化后,命令的输出将包含为root用户生成的随机密码;例如,查看密码,例如,此命令:
Shell> Docker Logs MySQL1 2>&1 |Grep生成生成的root密码:axegh3kajydlarubemecis&eshos
从容器内连接到MySQL Server
一旦服务器准备就绪,就可以运行mysql.您刚刚启动的MySQL Server容器中的客户端,并将其连接到MySQL Server。使用docker exec-it.命令开始一个mysql.客户端内的客户端,您已经开始如下:
docker exec-it mysql1 mysql -uroot -p
询问时,输入生成的root密码(请参阅最后一步启动MySQL Server实例以上关于如何找到密码)。因为这mysql_onetime_password.
默认情况下,选项是如此,连接后mysql.客户端到服务器,您必须通过发出此语句重置服务器root密码:
MySQL> Alter's Root'@'localhost'识别'密码'
代替密码
使用您选择的密码。重置密码后,服务器已准备好使用。
集装箱壳址
要将shell访问MySQL Server容器,请使用docker exec-it.命令在容器中启动Bash shell:
shell> docker exec-it mysql1 bash bash-4.2#
然后,您可以在容器中运行Linux命令。例如,要在容器中的服务器数据目录中查看内容,请使用此命令:
bash-4.2#ls / var / lib / mysql auto.cnf ca.pem client-key.pem ib_logfile0 ibdata1 mysql mysql.sock.lock.liftice_key.pem server-cert.pem sys ca-key.pem client-cert.pem ib_buffer_poolib_logfile1 ibtmp1 mysql.sock performence_schema public_key.pem server-key.pem
停止并删除MySQL容器
要停止我们创建的MySQL Server容器,请使用此命令:
docker停止mysql1.
Docker停止向该时向SIGTERM信号发送mysqld.过程,使服务器被优雅地关闭。
还请注意,当容器的主要过程(mysqld.在MySQL Server容器的情况下停止,Docker容器会自动停止。
要再次启动MySQL Server容器:
docker启动mysql1.
要在单个命令中再次停止并重新启动MySQL Server容器:
docker重新启动mysql1.
要删除MySQL容器,请先停止它,然后使用Docker RM.命令:
docker停止mysql1.
docker rm mysql1.
如果你想要的话服务器数据目录的Docker卷要在同一时间删除,添加-v.
选择Docker RM.命令。
升级MySQL Server容器
在执行任何升级到MySQL之前,请仔细遵循指示第2.11节“升级mysql”。在那里讨论的其他指示中,在升级之前备份数据库尤为重要。
本节中的说明要求主机上持久地持有服务器的数据和配置。看持久数据和配置更改有关详细信息。
请按照以下步骤升级MySQL 5.7至8.0的Docker安装:
停止MySQL 5.7服务器(容器名称是
mysql57.
在这个例子中):Docker停止MySQL57.
下载MySQL 8.0 Server Docker映像。请参阅说明下载MySQL Server Docker映像;确保为MySQL 8.0使用右侧标记。
启动新的MySQL 8.0 Docker容器(命名
mysql80.
在此示例中)使用旧服务器数据和配置(如果需要,有正确的修改 - 请参阅第2.11节“升级mysql”)已坚持在主机上(由绑定安装在这个例子中)。对于MySQL Community Server,请运行此命令:Docker Run --name = mysql80 \ --mount type = bind,src = / path-host-machine / my.cnf,dst = / etc / my.cnf \ --mount type = bind,src = / path-on-host-machine / datadir,dst = / var / lib / mysql \ -d mysql / mysql-server:8.0
如果需要,调整
mysql / mysql-server
到正确的图像名称 - 例如,替换它container-registry.oracle.com/mysql/enterprise-server.
对于从OCR下载的MySQL Enterprise Edition Images,或MySQL / Enterprise-Server
对于从中下载的MySQL Enterprise Edition Images我的Oracle支持。等待服务器完成启动。您可以使用使用的服务器的状态Docker PS.命令(参见启动MySQL Server实例如何做到这一点)。
对于MySQL 8.0.15及更早版本:跑过mysql_upgrade.在MySQL 8.0服务器容器中的实用程序(MySQL 8.0.16及更高版本不需要):
docker exec-it mysql80 mysql_upgrade -uroot -p
出现提示时,输入旧MySQL 5.7服务器的root密码。
通过重新启动MySQL 8.0 Server容器来完成升级:
docker重新启动mysql80.
使用Docker部署MySQL Server的更多主题
有关使用Docker配置的MySQL Server的更多主题,如服务器配置,持久数据和配置,服务器错误日志和容器环境变量,请参阅2.5.6.2节“使用docker部署mysql服务器的更多主题”。