Docker 学习笔记 环境搭建

Docker 学习笔记 环境搭建

目标

  1. 安装mysql
  2. 安装Redis
  3. 安装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 是我的容器名称
    Docker 学习笔记 环境搭建_第1张图片
    mysql -uroot -p123456

查看数据库 show databases;
select user,host from mysql.user;
Docker 学习笔记 环境搭建_第2张图片
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’;
Docker 学习笔记 环境搭建_第3张图片
到此mysql 就安装好了。

安装redis

  • 拉取redis镜像
    docker pull redis:latest
    Docker 学习笔记 环境搭建_第4张图片

  • 启动容器
    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
    Docker 学习笔记 环境搭建_第5张图片
  • 运行容器
    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
    Docker 学习笔记 环境搭建_第6张图片
    Docker 学习笔记 环境搭建_第7张图片

你可能感兴趣的:(Docker)