Docker创建MySQL容器并运行
Docker创建MySQL容器并运行关键字:Docker|MySQL|容器摘要:最近学习了一些关于Docker容器技术的内容,其中包括在Docker中创建一个MySQL实例,并把它运行起来作为测试数据库,下面把我记录的部分关键信息记录一下,作为备忘,也分享给大家作为参考。Docker安装的过程略过,我另外单独用一篇文章记录,这里假定事先在Windows 10下Docker已经安装完毕。1...
关键字:Docker|MySQL|容器
摘要:最近学习了一些关于Docker容器技术的内容,其中包括在Docker中创建一个MySQL实例,并把它运行起来作为测试数据库,下面把我记录的部分关键信息记录一下,作为备忘,也分享给大家作为参考。Docker安装的过程略过,我另外单独用一篇文章记录,这里假定事先在Windows 10下Docker已经安装完毕。
1.下载MySQL镜像
在Docker的官方网站上提供有MySQL的镜像可供直接下载使用,我们先打开网站,看看有哪些较常用的版本。
https://hub.docker.com/_/mysql?tab=tags
可看到有最新版或者8.0.18版,再往下拉,可看到还有常用的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”文件,修改如下:
用内容:“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参数相当于后台启动。
感谢您耐心的阅读,本文若有不妥之处,请留下您宝贵的意见。
更多推荐
所有评论(0)