问题描述
我是 Docker 的初学者。也就是说,我注意到以下我认为有点奇怪的内容。
在控制台中执行了一个 docker pull MysqL/MysqL-server:5.6.23
之后,在我玩了一点 Docker 和他的入门教程之后,我启动了拉取的 MysqL v5.6.23(不要问我为什么是这么旧的版本)容器和我意识到欢迎信息显示了错误的 MysqL 版本:
Welcome to the MysqL monitor. Commands end with ; or \g.
Your MysqL connection id is 2
Server version: 5.6.24 MysqL Community Server (GPL)
(...)
还在玩 docker 命令,我发现了以下内容:
$ docker container inspect bde088053099
(...)
"Config": {
"Hostname": "bde088053099","Domainname": "","User": "","AttachStdin": false,"AttachStdout": true,"AttachStderr": true,"ExposedPorts": {
"3306/tcp": {}
},"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": [
"MysqL_ROOT_PASSWORD=root","PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","PACKAGE_URL=https://repo.MysqL.com/yum/mysql-5.6-community/docker/x86_64/MysqL-community-server-minimal-5.6.24-2.el7.x86_64.rpm"
],"Cmd": [
"MysqLd"
],"Image": "MysqL/MysqL-server:5.6.23","Volumes": {
"/var/lib/MysqL": {}
},"WorkingDir": "","Entrypoint": [
"/entrypoint.sh"
],"OnBuild": null,"Labels": {}
},(...)
包 url 指向 MysqL 的下一个 subversion 而不是我的目标:
"PACKAGE_URL=https://repo.MysqL.com/yum/mysql-5.6-community/docker/x86_64/MysqL-community-server-minimal-5.6.24-2.el7.x86_64.rpm"
虽然映像名称包含正确的版本号 "Image": "MysqL/MysqL-server:5.6.23"
。
解决方法
首先,是的,这个问题可以重现,但使用mysql/mysql-server:5.6.23,而不是mysql:5.6.23。您在帖子中的描述有冲突,请仔细检查。
接下来,我觉得5年前oracle团队在做build script
发布的时候应该有5.6x
的问题(比如5.6.24
也没有ok),因为其他版本没问题。
所以,如果你坚持使用5.6.23
,我建议你切换到docker pull mysql:5.6.23
,这样就可以了(注意:不是 docker pull mysql/mysql-server:5.6.23
):
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -it mysql:5.6.23
mysql --version
mysql Ver 14.14 Distrib 5.6.23,for Linux (x86_64) using EditLine wrapper
最后,以上2个docker hub repo链接的区别:
都是官方镜像,只是mysql:5.6.23
基于debian,mysql/mysql-server:5.6.23
基于oracle linux。