Docker 学习笔记 环境搭建
目标
- 安装mysql
- 安装Redis
- 安装elasticsearch
安装mysql
- 拉取mysql 镜像
[root@MiWiFi-R4-srv docker]# docker pull mysql - 启动容器
[root@MiWiFi-R4-srv docker]# docker run -p 3307:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
mysql镜像初始化的时候需要指定mysql root 用户的 密码 -e MYSQL_ROOT_PASSWORD=123456
到这里正常情况下 就可以通过Navicat 访问数据库了,但是我在访问的时候测试连接连接不上,并且报错:client does not support authentication protocol requested by server consider …
不用慌,我们继续。 - 进入容器操作数据库
docker exec -it mysql01 bash 这里 mysql01 是我的容器名称
mysql -uroot -p123456
查看数据库 show databases;
select user,host from mysql.user;
root账户中的host项如果只有localhost表示该账号只能进行本地登录
修改权限,输入命令
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
完成,继续测试连接还是报错。
找了半天发现
大概原因是MySQL8.0的加密方式改变了,但是比较老版本的navicate没有来得及支持,因此需要将mysql设置为支持传统的那种密码加密,如果用比较低版本的MySQL,比如MySQL57应该就不会出现这种问题。
执行命令
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘Pbu4@123’;
到此mysql 就安装好了。
安装redis
-
拉取redis镜像
docker pull redis:latest
-
启动容器
docker run --name redis-server -p 6379:6379 -d --restart=always redis:latest redis-server --appendonly yes --requirepass “123456”
-
进入容器查看 redis
docker exec -it redis-server redis-cli -a ‘123456’
到此redis 安装完成。
安装elasticsearch
- 拉取镜像
docker pull elasticsearch
- 运行容器
ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时我们把这个容器命名为es。
docker run -d --name es -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” elasticsearch