Docker安装并使用MySQL(Windows下)

下载镜像
docker pull mysql

查看是否下载成功
docker images
看到mysql相关字眼则下载成功

运行 密码为123456 端口为3306
docker run --name mydb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

查看时候执行成功
docker ps
看到mysql相关字眼则说明正在启动

映射到主机启动
执行 docker images  看到mysql字眼
执行 docker run -itd -P mysql bash 进行映射
执行 docker ps  看到mysql映射信息,某端口到3306
执行 docker exec -it ID bash 连接到mysql镜像(ID为mysql ID号)
执行 service mysql status 看到mysql没有启动的信息
执行 service mysql start 启动mysql
执行 mysql 查看是否启动成功,此时进入mysql内

如何在外部访问?
此时用navcat连接,输入localhost及上面生成的端口号等
会报出错误:
2003——can't connect to mysql server on localhost(10061)
解决办法:
如果可以拿到my.ini文件
将bind-address = 127.0.0.1
改成
bind-address = 0.0.0.0
如果没有就加上

linux下
docker exec -it ID bash 进入容器,注意ID
cd 到/etc/mysql/mysql.conf.d/mysqld.cnf
cat mysqld.cnf 查看文件确认bind-address是否不正确
如不正确进行修改
sed 's/#bind-address/bind-address/g' mysqld.cnf>mysqlid.cnf.tmp
mv mysqld.cnf.tmp mysqld.cnf (覆盖原文件)
sed 's/127.0.0.1/0.0.0.0/g' mysqld.cnf mysqld.cnf>mysqlid.cnf.tmp
mv mysqld.cnf.tmp mysqld.cnf (覆盖原文件)

查看下文件是否修改正确

停止并删除容器
docker stop ID
docker rm ID

重新启动容器,命令在上方写过

依旧连不上,这段就当记录linux如何修改文件了...

Windows下安装Docker出现的问题

Windows下安装Docker会有很多坑的
安装成功后双击Docker Quickstart Terminal
提示Windows正在查找bash.exe...
错误原因:快捷方式的目标不正确(很可能是因为当初自定义了git的位置)
解决办法:
右键属性,找到目标栏,将值改正确即可,我的值为:
"D:\Program Files\Git\bin\bash.exe" 
--login -i "D:\Program Files\Docker Toolbox\start.sh"
打开Docker Quickstart Terminal后出现报错信息:
ERROR getting IP address...
解决办法:
 打开Oracle VM VirtualBox
 删除默认的虚拟机,如果在运行就停止后删除
 重启Docker Quickstart Terminal,会重新生成一个虚拟机
 启动完成,这个问题应该解决了
打开Docker Quickstart Terminal后出现报错信息:
ERROR creating machine:Error in ...UI-X/AMD-v enabled...
(虚拟化没有开启)
解决办法(以ThinkPad为例):
重启电脑按F1进入BIOS页面
按Tab或上下左右键移动到security
选中其下的visualizaiton选项将值改为enabled
然后F10保存恢复进入系统界面
 打开Oracle VM VirtualBox
 删除默认的虚拟机,如果在运行就停止后删除
 重启Docker Quickstart Terminal,会重新生成一个虚拟机
 启动完成,这个问题应该解决了
在cmd执行docker version出现信息有:
No connection could be made because 
the target machine actively refused it.
问题原因:
docker认为你并没有启动虚拟机
解决办法:
打开Docker Quickstart Terminal
$ docker-machine env default 会显示一串信息
$ export DOCKER_MACHINE_NAME="default"
打开Docker Quickstart Terminal后没有出现error相关字眼
且执行docker run ‘hello-world’出现了一大串信息
且没有出现error相关字眼则说明安装成功!