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
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值