docker搭建mysql
一,搭建docker环境
二,Docker安装mysql
1,查看mysql版本:docker search mysql
2,安装指定mysql版本或安装最新版本
docker pull mysql:5.8 或 docker pull mysql:latest
3,查看本地镜像中是否已安装好mysql镜像:docker images
4,运行容器启动mysql服务
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
说明:mysql-test表示创建的容器名,密码是:123456,默认账号是:root;需要注意的是 mysql 5.8之前的版本默认登录密码用的加密方式是:mysql_native_password,而在5.8及以后版本默认登录密码加密方式是:caching_sha2_password。所以如果再用一些客户端工具连接mysql服务时,如果连不上,报类似:Client does not support authentication protocol 错误,可能需要升级mysql客户端的驱动或者重置下mysql的登录密码加密方式。参照:客户端登录报错。
5,查看是否mysql容器安装成功:docker ps
6,进入mysql容器并进行登录
docker exec -it mysql-test mysql -uroot -p
输入密码:123456
登录成功后的界面如下:
7,mysql客户端通过服务器公网地址连接mysql
由于mysql的root账号默认设置的连接Host为localhost,所以需要将其设置成外网可访问的通用IP模式。参照:mysql连接Host问题。
在mysql容器中执行命令:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限:FLUSH PRIVILEGES;
注:在客户端连接mysql时,如果连接不上请检查下服务器安全组的3306端口是否开放。
8,客户端再次连接mysql服务成功
连接信息:
主机:47.103.219.189 端口:3306 账号:root 密码:123456
注:请勿删除原有库或表数据。
三,mysql集群搭建(未完待续。。)
-------------------------------------------------------------------------------------------------------------
docker搭建mongo
1,docker pull mongo:latest
参数说明:
-p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
--auth:需要密码才能访问容器服务。
2, docker run -itd --name mongo -p 27017:27017 mongo --auth
3,docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
-----------------------------------------------------------------------------------------------------------
docker常见问题及解决
1,docker pull命令出现failed to register layer: rename C:\ProgramData\Docker\image\lcow\layerdb\tmp\write-s
解决:暂时禁用mcafee, 具体是在任务栏右键选择McAfee Endpoint Security, 点击“威胁防护”, 取消“访问保护“, ”“漏洞利用防护”, “按访问扫描”这3个, 然后点击上面应用按钮。
---------------
2, 当您在执行 docker ps -a 命令时遇到 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 错误,这表示 Docker 守护程序(Docker Daemon)未运行或无法访问?
systemctl status docker
systemctl start docker