我们当前的系统环境是centos7,因此先更新yum源的配置,再去构建docker

    1. # 1.安装yum扩展工具
    2. yum install -y yum-utils device-mapper-persistent-data lvm2
    3. # 2.添加阿里云yum源信息
    4. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    5. # 3.更新缓存 + 构建docker
    6. yum makecache fast;
    7. yum -y install docker-ce;
    8. # 4.配置docker的下载源,默认是docker的中央仓库,修改为个人的阿里云免费加速地址
    9. vim /etc/docker/daemon.json;
    10. #修改为以下内容
    11. {
    12. "registry-mirrors": ["https://w8fte2cl.mirror.aliyuncs.com"]
    13. }
    14. # 5.刷新全局配置,重启docker服务
    15. systemctl daemon-reload;
    16. systemctl restart docker;

    此时docker已经构建完成,接着我们通过docker命令来构建Redis、Nacos以及Mysql5.7

    Docker快速构建Mysql5.7实例

    1. # 构建 mysql5.7
    2. docker pull mysql:5.7;
    3. # 1.启动mysql容器,并且将容器的名称修改为mysql-dev,并且配置默认root账号密码等基础信息
    4. docker run --name mysql-dev -p 13306:3306 -e MYSQL_ROOT_PASSWORD=hearyou2021 -d mysql:5.7
    5. # 2.进入mysql-dev实例,通过自带命令行机制,创建几个其他的用户账号
    6. docker exec -it mysql-dev bash;
    7. mysql -u root -p;
    8. # 切换到系统数据库
    9. use mysql;
    10. # 给root账号设置为允许非localhost 的机器远程登录,并且设置远程登录的密码
    11. GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "hearyou2021";
    12. # 刷新配置
    13. flush privileges;
    14. # 3.再去创建一个开发使用的账号
    15. create user dev_admin;
    16. GRANT ALL PRIVILEGES ON *.* TO dev_admin@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    17. flush privileges;
    18. #退出docker实例
    19. exit;
    20. exit;

    此时我们可以通过远程连接测试一下是否能连接上,至此mysql实例构建完毕

    Docker构建Redis实例

    这里为了方便管理,我们要创建一个redis配置文件的目录,作为docker挂载映射的目录:

    1. mkdir -p /home/redis/data;
    2. mkdir -p /home/redis/redis.conf;
    3. # 1.下载 redis镜像
    4. docker pull redis;
    5. # 2.运行并且挂载刚刚的外部文件目录,构建Redis实例
    6. docker run -d --privileged=true -p 16379:6379 -v /home/redis/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data --name redis-dev docker.io/redis:latest redis-server /etc/redis/redis.conf --appendonly yes --requirepass "hearyou2021"

    这样我们就构建完成了,接着使用本地工具连接测试吧

    Docker构建Nacos

    Nacos作为阿里的新一代微服务产出的配置中心 和 服务注册中心,性能高效,支持大量微服务和分布式部署,支持存储在数据库,目前注册中心的首选

    1. # 1.下载Nacos镜像 最新版已经是2.0版本了
    2. docker pull nacos/nacos-server;
    3. # 2.我们通过单机模式,启动Nacos
    4. docker run --env MODE=standalone --name nacos-dev -p 18848:8848 -d nacos/nacos-server;

    接着我们去在mysql中创建好一个nacos存储的库,用来持久化nacos的配置中心数据以及注册中心数据,其中对应版本的nacos-mysql.sql文件内容会有变动,可以去github中找到nacos项目,然后搜索该文件,根据该文件的sql在数据库中run一下,当然需要先创建数据库,这里我们的数据库就叫nacos-config,当数据库和表构建完毕以后,就可以开启nacos的持久化配置了

    1. # 1.进入nacos容器
    2. docker exec -it nacos-dev bash
    3. # 2.修改启动配置文件
    4. vim conf/application.properties
    5. # 3. 这里需要将spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM}修改为mysql持久化模式,并且这里我们是单数据源,因此修改设置db.num数量为1,并且将db.url.1的配置项注释,然后将db.url.0数据库连接池信息,db.user以及db.password等信息配置完毕后退出当前配置
    6. spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:"mysql"}
    7. db.num=${MYSQL_DATABASE_NUM:1}
    8. db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:172.17.0.2}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos_config}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true}
    9. #db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true}
    10. db.user=${MYSQL_SERVICE_USER:dev_admin}
    11. db.password=${MYSQL_SERVICE_PASSWORD:123456}

    退出编辑并且退出容器以后,我们重启nacos实例(需要注意,必须是初始化的时候配置,如果Nacos有数据了,后续配置无法自动生效)

    1. docker restart nacos-dev;

    重启完毕以后,我们就可以访问Nacos的UI界面,来操作Nacos了,地址为:

    1. http://ip:port/nacos/index.html

    默认的账号/密码都是nacos