Docker创建MySQL容器并运行

关键字:Docker|MySQL|容器

摘要:最近学习了一些关于Docker容器技术的内容,其中包括在Docker中创建一个MySQL实例,并把它运行起来作为测试数据库,下面把我记录的部分关键信息记录一下,作为备忘,也分享给大家作为参考。Docker安装的过程略过,我另外单独用一篇文章记录,这里假定事先在Windows 10下Docker已经安装完毕。

1.下载MySQL镜像

在Docker的官方网站上提供有MySQL的镜像可供直接下载使用,我们先打开网站,看看有哪些较常用的版本。

https://hub.docker.com/_/mysql?tab=tags
Docker站点的MySQL官方镜像页面
可看到有最新版或者8.0.18版,再往下拉,可看到还有常用的5.7.28版:
常用版本镜像5.7.28
并看到旁边有下载镜像包的命令如:

docker pull mysql:8.0.18

但我在管理员模式的Power Shell中执行上述命令时,发生下面的错误,并没有下载成功:

PS F:\> docker pull mysql:8.0.18
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

在网上搜索找到答案,原因是官方下载地址在国内访问不太稳定,需要修改一下下载地址,改为另一个镜像地址,在Docker安装目录下找到“windows-daemon-options.json”文件,修改如下:
修改Docker运行配置文件
用内容:“registry-mirrors”: [“https://registry.docker-cn.com”,“http://hub-mirror.c.163.com”],替换原有行。
如果是Linux系统(如:Ubuntu)则修改或新增的文件名是: /etc/docker/daemon.json

 vi /etc/docker/daemon.json

修改完配置文件,重启Docker。然后再执行下载镜像的命令,就能正常完成下载。

PS F:\> docker pull mysql:8.0.18
8.0.18: Pulling from library/mysql
80369df48736: Pull complete                                                                                             e8f52315cb10: Pull complete                                                                                             cf2189b391fc: Pull complete                                                                                             cc98f645c682: Pull complete                                                                                             27a27ac83f74: Pull complete                                                                                             fa1f04453414: Pull complete                                                                                             d45bf7d22d33: Pull complete                                                                                             3dbac26e409c: Pull complete                                                                                             9017140fb8c1: Pull complete                                                                                             b76dda2673ae: Pull complete                                                                                             bea9eb46d12a: Pull complete                                                                                             e1f050a38d0f: Pull complete                                                                                             Digest: sha256:7345ce4ce6f0c1771d01fa333b8edb2c606ca59d385f69575f8e3e2ec6695eee
Status: Downloaded newer image for mysql:8.0.18

安装完成后,可运行查看镜像的命令看看是否已存在镜像:

PS F:\>docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
mysql                      5.7.28              cd3ed0dfff7e        13 days ago         437MB
mysql                      8.0.18              c8ee894bd2bd        13 days ago         456MB

2.运行或创建MySQL容器

通过执行run命令,创建容器并运行,后再运行则用另一个命令,这个命令相当于是创建一个容器并立即运行它。

docker run -d --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.28

大概解释一下上面的命令参数的意思,-d参数,表示启动后就在后台运行,–name mysql参数,表示给容器命名为“mysql”,-p 3307:3306参数,表示可根据需要修改映射到宿主机的端口为:3307,容器内MySQL的端口是默认的:3306,-e MYSQL_ROOT_PASSWORD=123456参数,表示设置root用户的密码为“123456”,mysql:5.7.28参数表示用这个版本的MySQL镜像来创建容器。

然后运行查看容器的命令:

PS F:\> docker ps -n 5
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                               NAMES
8d6cccbad3d0        mysql:5.7.28        "docker-entrypoint.s…"   3 hours ago         Up 3 hours                  33060/tcp, 0.0.0.0:3307->3306/tcp   mysql

通过上述步骤,MySQL镜像已下载并创建容器运行。后面再附几个容器的命令:
删除容器

docker rm 容器名称

停止所有容器

docker stop $(docker ps -aq)

停止指定容器

docker stop 容器ID/名称

启动容器

docker start -a 容器ID/容器名称

-a参数是显示标准输出,“相当于”前台启动,不带-a参数相当于后台启动。

感谢您耐心的阅读,本文若有不妥之处,请留下您宝贵的意见。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
创建一个MySQL容器,你可以按照以下步骤进行操作: 1. 拉取MySQL的镜像。你可以使用以下命令拉取MySQL 5.7版本的镜像: ``` docker pull mysql:5.7 ``` 2. 创建MySQL容器。你可以使用以下命令创建一个MySQL容器: ``` docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql3306 mysql:5.7 ``` 这个命令会在后台运行一个MySQL容器,并将宿主机的3306端口映射到容器的3306端口。同时,通过卷的挂载,将宿主机的配置文件和数据文件与容器中的对应文件同步。还通过环境变量设置了MySQL的root密码为root。 3. 等待MySQL容器启动。启动容器后,MySQL服务会在容器中启动,并且可以通过宿主机的3306端口访问。 请注意,以上命令中的路径和端口号可以根据你的实际需求进行修改。同时,确保你已经安装了Docker,并且已经拉取了MySQL的镜像。如果你还没有安装Docker,可以参考网上的安装教程进行安装。 #### 引用[.reference_title] - *1* [使用docker创建mysql容器](https://blog.csdn.net/weixin_61407147/article/details/127321290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [docker创建mysql容器](https://blog.csdn.net/mengxiang0320/article/details/126368785)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [使用 Docker 创建 MySQL 容器](https://blog.csdn.net/qq_33910039/article/details/100663806)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值