• Docker环境搭建入门


    转自:http://www.jeesite.net/forum.php?mod=viewthread&tid=2568


    1. jdk与maven安装
    项目需要自动打包部署,因此需要配置jdk与maven
    安装jdk

    1. yum install java-1.8.0-openjdk.x86_64

    安装maven

    1. sudo yum install -y yum-utils
    2. [code]yum-config-manager --add-repo http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo
    3. yum install -y apache-maven


    配置maven仓库为阿里云

    1. <mirror>
    2.         <id>nexus-aliyun</id>
    3.         <mirrorOf>central</mirrorOf>
    4.         <name>Nexus aliyun</name>
    5.         <url><a href="http://maven.aliyun.com/nexus/content/groups/public</url>" target="_blank">http://maven.aliyun.com/nexus/content/groups/public</url></a>
    6.     </mirror>


    2. docker安装

    1. 1. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    2. 2. sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    3. 3. sudo yum install docker-ce


    配置docker加速器(注册阿里云加速更快)、容器网段、镜像仓库

    1. vi /etc/docker/daemon.json
    1. {
    2.         "bip":"172.18.6.1/24",
    3.         "registry-mirrors":[" <a href="https://kzorq22x.mirror.aliyuncs.com" target="_blank">https://kzorq22x.mirror.aliyuncs.com</a>"],
    4.         "insecure-registries":["192.168.244.10:5000"]
    5. }


    配置后重启docker服务:

    1. systemctl daemon-reload
    2. systemctl restart docker


    3. docker-compose安装

    1. sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    2. sudo chmod +x /usr/local/bin/docker-compose


    4. docker仓库服务

    1. docker pull registry
    2. docker run -d  --name reg -p 5000:5000 registry


    测试仓库服务:http://192.168.244.10:5000/v2/_catalog   
    5. docker挂载目录约定。

    1. 数据目录:/docker-data
    2. 日志目录:/docker-log


    一、 项目环境搭建
    1. zk搭建

    1. docker run -d --name zk -p 2181:2181  zookeeper


    2. dubbo-admin控制台(非必须)

    1. docker run -d -p 8280:8080 --name dubbo -e dubbo.registry.address=zookeeper://192.168.244.10:2181 -e dubbo.admin.root.password=root chenchuxin/dubbo-admin


    3. redis搭建

    1. docker run -d --name redis -p 6379:6379 redis  --requirepass "123456"


    4. mysql主从搭建
    A. 创建mysql主从库配置目录

    1. mkdir -p /docker-data/mysql/master/conf
    2. mkdir -p /docker-data/mysql/slave/conf


    B. 在/docker-data/mysql/master/conf下,创建my.cnf配置文件

    1. [client]
    2. port=3306
    3. default-character-set=utf8
    4. [mysql]
    5. default-character-set=utf8
    6. [mysqld]
    7. character_set_server=utf8
    8. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    9. # 配置大小写不敏感
    10. lower_case_table_names=1
    11. ## 同一局域网内注意要唯一
    12. server-id=100  
    13. ## 开启二进制日志功能(关键)
    14. log-bin=mysql-bin


    C. 在/docker-data/mysql/slave/conf下,创建my.cnf配置文件

    1. [client]
    2. port=3306
    3. default-character-set=utf8
    4. [mysql]
    5. default-character-set=utf8
    6. [mysqld]
    7. character_set_server=utf8
    8. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    9. # 配置大小写不敏感
    10. lower_case_table_names=1
    11. ## 同一局域网内注意要唯一
    12. server-id=101  



    D. 使用docker-compose来管理mysql主从库,
    在/docker-data/mysql下创建docker-compose.yaml:
    vi docker-compose.yaml

    1. version: '3'
    2. services:
    3.   mysql-slave:
    4.     image: mysql:5.7
    5.     depends_on:
    6.       - mysql-master
    7.     links:
    8.       - mysql-master
    9.     volumes:
    10.       - /docker-data/mysql/slave/data:/var/lib/mysql
    11.       - /docker-data/mysql/slave/conf:/etc/mysql
    12.       - /docker-data/mysql/slave/log:/var/log/mysql
    13.     ports:
    14.          - "3308:3306"
    15.     restart: always
    16.     environment:
    17.       MYSQL_ROOT_PASSWORD: root
    18.     container_name: mysql-slave
    19.   mysql-master:
    20.     image: mysql:5.7
    21.     volumes:
    22.       - /docker-data/mysql/master/data:/var/lib/mysql
    23.       - /docker-data/mysql/master/conf:/etc/mysql
    24.       - /docker-data/mysql/master/log:/var/log/mysql
    25.     ports:
    26.          - "3307:3306"
    27.     restart: always
    28.     environment:
    29.       MYSQL_ROOT_PASSWORD: root
    30.     container_name: mysql-master


    E. 启动compose来启动mysql

    1. docker-compose up -d


    F. 主数据库配置,连接主库并创建数据同步用户

    1. CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
    2. GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

    3. SHOW MASTER STATUS ;




    G. 从数据库配置,连接从库配置从库同步连接(指定连接的ip/port/user/passwd以及上图中show master status命令得到的file和position值)

    1. CHANGE MASTER TO MASTER_HOST='192.168.244.10',MASTER_PORT=3307,MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=609;
    2. #启动同步进程
    3. START SLAVE;
    4. H. 测试结果状态
    5. 主库查询进程:SHOW PROCESSLIST


    6. 从库查询进程:SHOW PROCESSLIST



    5. mongodb搭建

    1. docker run -d --name mongo -p 27017:27017 -v /docker-data/mongo:/data/db  mongo


    6. fastdfs图片服务
    创建fastdfs容器服务,并进入容器内部

    1. docker run --add-host fastdfs.net:192.168.244.10 --name fastdfs --net=host -e TRACKER_ENABLE=1 -e NGINX_PORT=8181 -v /docker-data/fastdfs:/storage/fastdfs -it mypjb/fastdfs


    修改mod_fastdfs配置,vi /usr/local/nginx/modules/fastdfs/src/mod_fastdfs.conf


    修改nginx配置,vi /usr/local/nginx/conf/nginx.conf


    重启nginx服务,

    1. nginx  -s  reload


    退出容器(ctrl + Q)
    7. rabbitMQ服务

    1. docker run -d --name mq -p 5672:5672 -p 15672:15672 -v /docker-data/rabbitmq:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3.7.14-management


    8. nginx服务
    可先放置了配置文件目录到宿主机,方便后续nginx编辑配置
    进入/docker-data/nginx/conf.d目录下,添加以下配置文件


    vi sso.conf

    1. server {
    2.     listen       80;
    3.     server_name  self.sso.com;
    4.     location /mall-account {
    5.         proxy_pass   <a href="http://192.168.244.10:8180;" target="_blank">http://192.168.244.10:8180;</a>
    6.     }
    7.     location ~ /picture/M00{
    8.               proxy_pass <a href="http://192.168.244.10:8181;" target="_blank">http://192.168.244.10:8181;</a>
    9.          }
    10. }


    vi www.conf

    1. server {
    2.     listen       80;
    3.     server_name  <a href="http://www.mall.com" target="_blank">www.mall.com</a> mng.mall.com mall.com;
    4.     if ($http_host ~ "^mall.com[        DISCUZ_CODE_25        ]quot;) {
    5.        rewrite  ^(.*)    <a href="http://www.mall.com" target="_blank">http://www.mall.com</a>$1 permanent;
    6.     }
    7.     location /mall {
    8.         proxy_pass   <a href="http://192.168.244.10:8186;" target="_blank">http://192.168.244.10:8186;</a>
    9.     }
    10.     location /mall-mng {
    11.         proxy_pass   <a href="http://192.168.244.10:8185;" target="_blank">http://192.168.244.10:8185;</a>
    12.     }
    13.     location /picture/M00 {
    14.         proxy_pass   <a href="http://192.168.244.10:8181;" target="_blank">http://192.168.244.10:8181;</a>
    15.     }
    16.     location / {
    17.         if ($http_host ~ "^mng.mall.com[        DISCUZ_CODE_25        ]quot;) {
    18.           rewrite  ^(.*)    /mall-mng permanent;
    19.         }
    20.         rewrite  ^(.*)    /mall permanent;
    21.     } }


    创建nginx命令:

    1. docker run  --name nginx -d -p 80:80  
    2.   -v /docker-data/nginx/html:/usr/share/nginx/html
    3.   -v /docker-data/nginx/log:/var/log/nginx/
    4.   -v /docker-data/nginx/conf.d:/etc/nginx/conf.d
    5.   nginx
  • 相关阅读:
    x8086汇编在显存中显示字符串
    x8086汇编实现dos清屏(clear screen)
    原创:根据题目要求,通过素数的方式判断一个小的字符串是否属于另一个大的字符串的子集
    python signal信号
    转:python signal信号
    python signal(信号)
    python问题记录
    Python语言and-or的用法
    perl6中的q/qq/qx/qqx
    upupw注入by pass
  • 原文地址:https://www.cnblogs.com/coolSome/p/10937027.html
Copyright © 2020-2023  润新知