MySQL团队维护的MySQL Docker映像是专门为Linux平台构建的。其他平台不受支持,用户在这些平台上使用这些MySQL Docker映像将自担风险。看到这里的讨论了解在非linux操作系统上运行这些容器的一些已知限制。
下载MySQL服务器Docker镜像
在单独的步骤中下载服务器镜像并不是完全必要的;但是,在创建Docker容器之前执行此步骤可确保本地映像是最新的。下载MySQL Community Server镜像,运行如下命令:
码头工人把mysql / mysql服务器:标签
的标签
要提取的图像版本的标签(例如,5.5
,5.6
,5.7
,8.0
,或最新的
).如果:
省略了,标签
最新的
标签,下载MySQL Community Server最新GA版本的镜像。的可用版本,请参阅标记列表Docker Hub中的mysql/mysql-server页面.
你可以用这个命令列出下载的Docker镜像:
shell> docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql/mysql-server latest 3157d7f55f8d 4 weeks ago 241MB
启动MySQL服务器实例
用下面的命令为MySQL服务器启动一个新的Docker容器:
运行——name=mysql1 -d mysql/mysql-server:标签
的——名字
选项,用于为服务器容器提供自定义名称(mysql1
在示例中),是可选的;如果没有提供容器名,则生成一个随机的容器名。如果指定名称和标记的Docker映像没有被先前的码头工人拉或码头工人运行命令,映像现在已下载。下载完成后,开始对容器进行初始化,并且当您运行码头工人ps命令;例如:
shell> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a24888f0d6f4 mysql/mysql-server "/entrypoint.sh my…"Up 13秒(health: starting) 3306/tcp, 33060/tcp mysql1 . Up 13秒(health: starting) 3306/tcp, 33060/tcp mysql1
容器初始化可能需要一些时间。当服务器准备好使用时,将状态
的输出中容器的码头工人ps命令从(健康:开始)
来(健康)
.
的- d
选项在码头工人运行上面的命令使容器在后台运行。使用这个命令来监视容器的输出:
码头工人日志mysql1
初始化完成后,命令的输出将包含为根用户生成的随机密码;例如,使用以下命令检查密码:
shell> docker logs mysql1 2>&1 | grep GENERATED GENERATED ROOT密码:Axegh3kAJyDLaRuBemecis&EShOs
从容器内连接到MySQL服务器
服务器准备好之后,就可以运行mysql客户端,并连接到MySQL服务器。使用码头工人exec -命令启动mysql打开Docker容器中的客户端,如下所示:
Docker exec -it mysql1 mysql -uroot -p
当询问时,输入生成的根密码(参见最后一步)启动MySQL服务器实例上面介绍了如何找到密码)。因为MYSQL_ONETIME_PASSWORD
选项在默认情况下为truemysql客户端到服务器,您必须通过发出以下语句重置服务器root密码:
mysql>修改用户名root @ localhostnewpassword”;
替代newpassword
用你选择的密码。重置密码之后,服务器就可以使用了。
容器Shell访问
要使用shell访问MySQL Server容器,请使用码头工人exec -命令在容器中启动bash shell:
Shell > docker exec - 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 private_key. Pempem server-cert。pem sys ca-key。pem client-cert。Pem ib_buffer_pool ib_logfile1 ibtmp1 mysql. Pem袜子performance_schema public_key。pem server-key.pem
停止和删除MySQL容器
要停止我们创建的MySQL Server容器,使用以下命令:
码头工人停止mysql1
码头工人停止发送SIGTERM信号到mysqld处理,以便服务器正常关闭。
还要注意,当容器的主进程(mysqld如果是MySQL Server容器)停止,Docker容器就会自动停止。
重新启动MySQL Server容器:
码头工人开始mysql1
用一个命令来停止和重新启动MySQL Server容器:
码头工人重启mysql1
要删除MySQL容器,请先停止它,然后使用码头工人rm命令:
码头工人停止mysql1
码头工人rm mysql1
如果你想要服务器数据目录的Docker卷如果需要同时删除,请添加- v
可以选择的码头工人rm命令。
更多关于使用Docker部署MySQL服务器的主题
有关使用Docker部署MySQL Server的更多主题,如服务器配置、持久化数据和配置、服务器错误日志和容器环境变量,请参见第2.5.8.2节“更多关于使用Docker部署MySQL服务器的主题”.