Docker之十九: 使用 Docker 在 Linux上 部署 MySQL
使用 Docker 部署 MySQL Server 的基本步骤
MySQL Docker 镜像是专门为 Linux 平台构建的。其他平台不受支持,用户在这些平台上使用 MySQL Docker 镜像是有风险的。
下载 MySQL Server 镜像
下载 MySQL Community Edition 镜像
docker pull mysql/mysql-server:tag
下载 MySQL Enterprise Edition 镜像
要下载 MySQL Enterprise Edition 映像,请访问 My Oracle Support 网站,登录到您的 Oracle 帐户,然后在登录页上执行以下步骤:
- 选择 Patches and Updates 选项卡。
- 选择 Patch Search -> Search -> Product or Family (Advanced) 。
- 在 Product 字段中输入“MySQL Server“,在 Release 字段中输入所需要的版本号。
- 使用其他过滤器的下拉列表选择 Description—contains,然后在文本字段中输入”Docker“。
- 单击 search 按钮,然后从结果列表中选择所需的版本,然后单击 ***Download***按钮。
- 在出现的文件下载对话框中,单击并下载 Docker 映像的 .zip 文件。
解压下载的 .zip 压缩包以获得其中的 mysql-enterprise-server-version
.tar,然后执行下面的命令加载镜像:
docker load -i mysql-enterprise-server-version.tar
加载完成后,查看镜像:
shell> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql/mysql-server latest 3157d7f55f8d 4 weeks ago 241MB
启动 MySQL Server 实例
为 MySQL Server 启动新的 Docker 容器,请使用以下命令:
docker run --name=container_name --restart on-failure -d image_name:tag
# --name=container_name 自定义容器名称
# --restart on-failure 设置 Mysql Server 的重启策略 on-failure
实例:
docker run --name=mysql1 --restart on-failure -d mysql/enterprise-server:8.0
查看 Mysql 容器运行状态:
docker ps
监视 Mysql 后台容器输出:
docker logs mysql1
初始化完成后,命令的输出将包含为root用户生成的随机密码;例如,使用以下命令检查密码:
shell> docker logs mysql1 2>&1 | grep GENERATED
GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis&EShOs
从容器内连接到 MySQL Server
一旦服务器准备就绪,您就可以在刚刚启动的 MySQL Server 容器中运行 MySQL 客户端,并将其连接到 MySQL Server。使用 docker exec-it 命令在您已经启动的 Docker 容器中启动 MySQL 客户端,如下所示:
docker exec -it mysql1 mysql -uroot -p
系统提示时,输入生成的 root 密码。由于 MYSQL_ONETIME_PASSWORD 选项在默认情况下为 TRUE,因此在将 MySQL 客户端连接到服务器后,必须通过发出以下语句来重置服务器根密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
进入容器命令
shell> docker exec -it mysql1 bash
bash-4.2#
停止或删除 Mysql 容器
# 停止 MySQL Server 容器
docker stop mysql1
# 开启 MySQL Server 容器
docker start mysql1
# 重启 MySQL Server 容器
docker restart mysql1
# 删除 MySQL Server 容器,先停止,再删除
docker stop mysql1
docker rm mysql1
# 如果希望同时删除服务器数据目录的 Docke r卷,请在 docker rm 命令中添加 -v 选项。
升级 MySQL Server 容器
本节我们将讨论当服务器的数据和配置已保存在主机上,如何升级 Mysql。
按照以下步骤将 Docker 安装的 MySQL 5.7 升级到 8.0:
-
停止 MySQL 5.7 服务器(本例中容器名称为 mysql57):
docker stop mysql57
-
下载 MySQL 8.0 Server Docker 镜像。
-
启动一个新的 MySQL 8.0 Docker 容器(在本例中名为 mysql80),并使用主机上保存的旧服务器数据和配置:
docker run --name