谷粒商城分布式环境配置(一)

谷粒商城分布式环境配置:
    vagrant:
        1、安装vagrant:
            vagrant init centos/7
            
        2、配置固定ip:
            更改Vagrantfile更改虚拟机ip,修改其中的config.vm.network "private_network",ip:"192.168.56.10"
        
        3、修改登录方式:默认只允许ssh登录方式,为了后来操作方便,文件上传等,我们可以配置允许账号密码登录
            vim /etc/ssh/sshd_config
            # 修改
            PasswordAuthentication yes
            # 重启
            service sshd restart
            # 账号root
            密码vagrant
        
        4、配置源:
            # 备份原yum源
            mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
            # 使用新yum源
            curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
            # 生成缓存
            yum makecache
            
    Docker:
        1、安装Docker:https://docs.docker.com/engine/install/centos/
            #卸载系统之前的docker 
            sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
                              
                  
            sudo yum install -y yum-utils

            # 配置镜像
            sudo yum-config-manager \
                --add-repo \
                https://download.docker.com/linux/centos/docker-ce.repo
                
            sudo yum install docker-ce docker-ce-cli containerd.io

            sudo systemctl start docker
            # 设置开机自启动
            sudo systemctl enable docker

            docker -v
            sudo docker images

            # 配置镜像加速: https://cr.console.aliyun.com/cn-qingdao/instances/mirrors
            sudo mkdir -p /etc/docker
            sudo tee /etc/docker/daemon.json <<-'EOF'
            {
              "registry-mirrors": ["https://XXXXXXXXXXX.mirror.aliyuncs.com"]
            }
            EOF

            sudo systemctl daemon-reload
            sudo systemctl restart docker
        
        2、安装mysql-docker:
            sudo docker pull mysql:5.7

            # --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
            sudo docker run -p 3306:3306 --name mysql \
            -v /mydata/mysql/log:/var/log/mysql \
            -v /mydata/mysql/data:/var/lib/mysql \
            -v /mydata/mysql/conf:/etc/mysql \
            -e MYSQL_ROOT_PASSWORD=root \
            -d mysql:5.7
            
            su root 密码为vagrant,这样就可以不写sudo了
        
        3、MySQL 配置:
            
            # 进入已启动的容器
            docker exec -it mysql bin/bash
            # 退出进入的容器
            exit;

            因为有目录映射,所以我们可以直接在镜像外执行
            vi /mydata/mysql/conf/my.conf 

            [client]
            default-character-set=utf8
            [mysql]
            default-character-set=utf8
            [mysqld]
            init_connect='SET collation_connection = utf8_unicode_ci'
            init_connect='SET NAMES utf8'
            character-set-server=utf8
            collation-server=utf8_unicode_ci
            skip-character-set-client-handshake
            skip-name-resolve

            保存

            docker restart mysql
            
        4、Redis 安装配置:
            # 在虚拟机中
            mkdir -p /mydata/redis/conf
            touch /mydata/redis/conf/redis.conf

                        docker pull redis

            docker run -p 6379:6379 --name redis \
            -v /mydata/redis/data:/data \
            -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
            -d redis redis-server /etc/redis/redis.conf

            # 直接进去redis客户端。
            docker exec -it redis redis-cli
            
            默认是不持久化的。在配置文件中输入appendonly yes,就可以aof持久化了。修改完docker restart redis,docker -it redis redis-cli
            vim /mydata/redis/conf/redis.conf
            # 插入下面内容
            appendonly yes
            保存

            docker restart redis

            # 设置redis容器在docker启动的时候启动
            docker update redis --restart=always

        5、安装nginx docker:
            docker pull nginx:1.10
            # 随便启动一个nginx实例,只是为了复制出配置,放到docker里作为镜像的统一配置
            docker run -p 80:80 --name nginx -d nginx:1.10

            # 把nginx里的东西复制出来
            cd /mydata/nginx
            docker container cp nginx:/etc/nginx .
            然后在外部 /mydata/nginx/nginx 有了一堆文件
            mv /mydata/nginx/nginx /mydata/nginx/conf
            # 停掉nginx
            docker stop nginx
            docker rm nginx

            # 创建新的nginx,使用刚才复制出来的配置文件
            docker run -p 80:80 --name nginx \
            -v /mydata/nginx/html:/usr/share/nginx/html \
            -v /mydata/nginx/logs:/var/log/nginx \
            -v /mydata/nginx/conf:/etc/nginx \
            -d nginx:1.10

            # 注意一下这个路径映射到了/usr/share/nginx/html,我们在nginx配置文件中是写/usr/share/nginx/html,不是写/mydata/nginx/html

            docker update nginx --restart=always

 

posted @ 2021-11-29 15:55  起床睡觉  阅读(112)  评论(0编辑  收藏  举报