1.下载
[root@bogon ~]# docker search mysql
[root@bogon ~]# docker pull mysql
[root@bogon ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/tomcat latest 78b258e36eed 2 weeks ago 463 MB
docker.io/mysql latest f991c20cb508 2 weeks ago 486 MB
2.运行
错误的启动方式:
[root@bogon ~]# docker run --name mysql01 -d mysql
5cf0d25e4b8c9e0864a7ce4f49581644842d703b2845e035dd83c61becff3111
[root@bogon ~]# clear
[root@bogon ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@bogon ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5cf0d25e4b8c mysql "docker-entrypoint..." About a minute ago Exited (1) About a minute ago mysql01
f1ef9a36217b tomcat "catalina.sh run" 22 minutes ago Exited (143) 43 seconds ago loving_edison
[root@bogon ~]# docker logs 5cf0d25e4b8c
error: database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
上面的启动可以看到启动的mysql退出了,通过log信息可以看到启动mysql需要指定密码
正确的启动:
可以参照官方文档:https://hub.docker.com/r/library/mysql/
[root@bogon ~]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
0d27b8b436d9e71beb022ab0b0b27741990216ea36928f4ebc5638224f92544f
[root@bogon ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0d27b8b436d9 mysql "docker-entrypoint..." 25 seconds ago Up 24 seconds 3306/tcp, 33060/tcp mysql01
到这里mysql就正常启动了,但是这个时候外部还是无法访问的,因为没有做端口映射。
使用Navicat 测试一下:
会发现连接不上
重新启动一个端口映射的:
[root@bogon ~]# docker stop 0d27b8b436d9
0d27b8b436d9
[root@bogon ~]# docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
4397a9e13fa71a64567981868e7a535a31467791e855b00a519045f81b71be24
[root@bogon ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4397a9e13fa7 mysql "docker-entrypoint..." 12 seconds ago Up 11 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql02
就会发现可以成功连接了。
好了,mysql到此就可以正常访问了,更高级的运行配置方式,可以参考官方文档,
https://hub.docker.com/r/library/mysql/