User-Profile-Image
hankin
  • 5
  • centos7
  • docker
  • mysql
  • PostgreSQL
  • git/gitlab
  • ELK
  • python
    • python-Tornado
    • python-django
  • redis
  • nginx
  • kvm
  • proxmox
  • mongo
  • kubernetes
  • prometheus
  • GlusterFs
  • nfs
  • freeswitch
  • httpd
  • shell脚本
  • linux
  • fastdfs
  • nextcloud
  • openssl
  • openvpn
  • rabbitmq
  • sqlite
  • svn
  • java
  • ubuntu
  • vue2
  • wordpress
  • php
  • IOT物联网
  • 项目
  • 故障处理
  • 树莓派
  • 博客存档
  • 未分类
  • 杂项
  • #1742(无标题)
  • 新视野
  • 分类
    • 项目
    • 树莓派
    • 杂项
    • 未分类
    • 新视野
    • 故障处理
    • 博客存档
    • 交换机
    • wordpress
    • vue2
    • ubuntu
    • svn
    • sqlite
    • shell脚本
    • redis
    • rabbitmq
    • python-django
    • python
    • proxmox
    • prometheus
    • PostgreSQL
    • php
    • openvpn
    • openssl
    • nginx
    • nfs
    • nextcloud
    • mysql
    • mongo
    • linux
    • kvm
    • kubernetes
    • java
    • IOT物联网
    • httpd
    • GlusterFs
    • git/gitlab
    • freeswitch
    • fastdfs
    • ELK
    • docker
    • centos7
  • 页面
    • #1742(无标题)
  • 友链
      请到[后台->主题设置->友情链接]中设置。
Help?

Please contact us on our email for need any support

Support
    首页   ›   docker   ›   正文
docker

docker compose部署常见容器合集/

2022-11-04 16:07:16
799  0 0

docker-compose 安装nginx容器

    (使用dockerfile创建的镜像)             
    创建c5.yaml               
        (具体内容见compose.yaml的示例3)         

    检查yaml配置文件              
        ./compose -f c1.yaml config         

    创建+启动               

                 --compatibility 非集群,不然报错   
    先创建后启动              
        compose  -f xx.yaml up --compatibility --no-start           
        compose -f .yaml  --compatibility  up --no-start            

    单独启停                
        ./compose up -d(./compose up -f a.yaml up -d)           
        ./compose stop (./compose -f c1.yaml  stop )            

        自定义文件或存在多个文件 -f xx          
    删除停止的容器             
        ./compose -f c5.yaml rm         

docker-compose 安装多redis

    创建主机文件              
        mkdir -p /redis/{redis01/{data,log},redis02/{data,log},redis03/{data,log}}          
        touch /redis/{redis01/log/redis1.log,redis01/log/redis1.log}            
        chmod -R a+rw /redis            

    创建redis.yaml                
        (具体内容见compose.yaml的示例4)         

    检查yaml配置文件              
        ./compose -f redis.yaml config          

    创建+启动               
        ./compose -f redis.yaml --compatibility up -d           

docker-compose 安装redis主从

    redis主从必须使用单独配置文件,不能共用?         

    创建主机文件              
        mkdir -p redis-ms/ms01/{m/{data,log,conf},s/{data,log,conf}}            
        touch /redis-ms/ms01/{m/log/redis.log,s/log/redis.log}          
        cp redis.conf …         
        chmod -R a+rw /redis-ms/            

    创建redis-ms.yaml             
        (具体内容见compose.yaml的示例5)         

    修改redis配置文件             
        docker已经使用后台运行redis,所以daemonize 值为no,           
        redis从机配置文件增加 slaveof 172.16.0.2 6379           
        。。。         

    创建+启动               
        ./compose -f redis.yaml --compatibility up -d           

docker-compose 安装 单mongo

创建文件目录              
    mkdir -p /mongo/mongo_03/{data,conf,log}            
    vim mongo.conf (mongo.conf见配置表1)            
    chmod -R a+rw …         

创建mongo.yaml                
    (具体内容见compose.yaml的示例6)         

创建+启动               
    echo /mongorep/mongo_04/conf /mongorep/mongo_05/conf /mongorep/mongo_06/conf | xargs -n 1 cp -v mongo.conf          

docker-compose 单机安装mongo副本集

    创建mongo.yaml                
        (具体内容见compose.yaml的示例7)         

    创建mongo.conf                
        (mongo.conf见 配置表2)          

    创建文件目录              
        mkdir -p /mongorep/{mongo_04/{data,log,conf},mongo_05/{data,log,conf},mongo_06/{data,log,conf},ckye}            
        echo /mongorep/mongo_04/conf /mongorep/mongo_05/conf /mongorep/mongo_06/conf | xargs -n 1 cp -v mongo.conf          

        openssl rand -base64 100 >key           创建认证文件key
        cp key …            
        chmod -R a+rw …         
        key权限严格:    -rw-------. 1 polkitd root 139 7月  20 10:55 mongokey        
                chown 999 xxx   
                chmod 600 xxx   

    创建+启动               
        ./compose -f mongo.yaml --compatibility up          
            调试可不用-d 后台运行        
    单独启停                
        ./compose -f mongo.yaml  --compatibility start          
        ./compose -f mongo.yaml  stop           

    连接任意mongo 执行:               
        rs.initiate()   初始化 输出中ok值为1时继续     
        rs.conf()   查看副本集配置     
        rs.add("172.16.0.15:27017") 当mongo变成primary时添加节点,成功会输出ok:1      
        rs.addArb("192.168.1.1:2900")   添加仲裁节点      
        rs.status() 当statestr:recovering状态代表启动正常,状态详情见函数        
        db.getMongo().setSlaveOk()          
        use admin           
        db.createUser({user: "r1", pwd: "123456",roles:[ "root"]})          

    关闭所有mongo               
        修改主副节点配置文件件,开启密码认证和key认证            

    启动              
        ./compose -f mongo.yaml --compatibility up          

        docker exec -it mongo_04 /bin/bash          

    注意点  副本集不能使用 docker id 作为 mongo示例地址 ,id 变了 副本集无法正常运行            
            (compose 修改 docker 内的 hosts文件)      
        不要开启仲裁节点密码和key认证 否则副本集故障 无法正常运行(所有节点OTHER状态)            

    备用命令                
        docker rm {mongo_04,mongo_05,mongo_06}          
        rm -rf /mongorep/{mongo_06/{data/*,log/*},mongo_04/{data/*,log/*},mongo_05/{data/*,log/*}}          

docker-compose 多机安装mongo副本集,使用普通用户管理

    创建用户、用户组u1      uijknm      

    创建mongo配配置文件                
        (具体内容见compose.yaml的示例8)         

    创建compose配置文件               
        (mongo.conf见 配置表3)          

    创建文件目录              
        mkdir -p /mongorep/{mongo_04/{data,log,conf},ckye}          
        cp mongo.conf           
        openssl rand -base64 100 >key           创建认证文件key
        chmod -R a+rw /mongorep/            
        key权限严格,设置:         
            chown 999 xxx       
            chmod 600 xxx       
    创建+启动               
        ./compose -f mongo.yaml --compatibility up          
            调试可不用-d 后台运行        
    进入容器                
        docker exec -it mongo_04 /bin/bash          

        连接任意mongo 执行:           

        var vv={_id: "rep1",version: 1,members: [{ _id: 0, host : "mongo_200:20004" },{ _id: 1, host : "mongo_201:20004" },{ _id: 2, host : "mongo_202:20004" }]}           
        rs.initiate(vv) 初始化 输出中"ok" : 1时继续      
        rs.conf()   查看副本集配置     
        rs.status() 查看副本集状态,"stateStr" : "SECONDARY或PRIMARY代表正常     
        db.getMongo().setSlaveOk()          设置副本可读
        use admin           
        db.createUser({user: "r1", pwd: "uijknm",roles:[ "root"]})          
        use db1         
        db.createUser({user: "db1",pwd: "123456",roles: [ { role: "dbOwner", db: "db1" } ]})            
        db.createUser({user: "db1rd",pwd: "123456",roles: [ { role: "readWrite", db: "db1" } ]})            
        db.createUser({user: "db1rd",pwd: "123456",roles: [ { role: "read", db: "db1" } ]})         
        db.createUser({user: "dbc7rw",pwd: "123456",roles: [ { role: "readWrite", db: "db_c7" } ]})         
    关闭所有mongo               
        修改主副节点配置文件:开启密码认证和key认证         

    设置key权限 严格:             
        sudo chown polkitd:u1 /mongorep/ckey/mongokey           
        chmod 600  /mongorep/ckey/mongokey          

        当使用u1用户时 key文件属主权限必须为下:否则报权限错误:         
            测试 ckey 必须a+x 否则报权限错误?      
            /mongorep/      
            ├── [drwxrwxr-x u1       u1      ]  ckey        
            │  └── [-rw------- polkitd  u1      ]  mongokey     

    启停命令                
        ./compose -f mongo.yaml --compatibility up -d           
        ./compose -f mongo.yaml  --compatibility start          
        ./compose -f mongo.yaml  stop           
        docker start mongo_042          
        docker stop mongo_042           

    备用命令                
        sudo rm -rf /mongorep/mongo_04/{data/*,log/*}           
        docker rm $(docker container ls -aq)            

dockerfile+compose 多nginx

    dockerfile内容:                       
        FROM nginx                  
        RUN mkdir -p /nginx_file/{conf,accesslog,errlog,html}                   
        COPY ./nginx.conf /nginx_file/conf/nginx.conf                   
        RUN ln -s -f /nginx_file/conf/nginx.conf /etc/nginx/nginx.conf                  
        RUN rm -rf /etc/nginx/conf.d/default.conf                   

    创建镜像                        
        docker build -f ./dkfile_nginxv1.yaml -t "nginxv1:1.1" .                    
        #-f指定dockerfile文件 -t定义镜像名                   
        注意:当前上下文:.                  

    compose.yaml内容                      
        version: '3.8'                  
        services:                   
          nginx_v1_2:                   
            image: nginxv1:1.2                  
            ports:                  
              - 10022:80                    
            networks:                   
                - front-tier                    
                - back-tier                 
            volumes:                    
             - /nginx_file/html:/nginx_file/html                    
             - /nginx_file/conf:/nginx_file/conf                    
             - /nginx_file/nginx_n2/accesslog:/nginx_file/accesslog                 
             - /nginx_file/nginx_n2/errlog:/nginx_file/errlog                   

          nginx_v1_3:                   
            image: nginxv1:1.2                  
            ports:                  
              - 10023:80                    
            networks:                   
                - front-tier                    
                - back-tier                 
            volumes:                    
             - /nginx_file/html:/nginx_file/html                    
             - /nginx_file/conf:/nginx_file/conf                    
             - /nginx_file/nginx_n3/accesslog:/nginx_file/accesslog                 
             - /nginx_file/nginx_n3/errlog:/nginx_file/errlog                   

          nginx_v1_4:                   
            image: nginxv1:1.2                  
            ports:                  
              - 10024:80                    
            networks:                   
                - front-tier                    
                - back-tier                 
            volumes:                    
             - /nginx_file/html:/nginx_file/html                    
             - /nginx_file/conf:/nginx_file/conf                    
             - /nginx_file/nginx_n4/accesslog:/nginx_file/accesslog                 
             - /nginx_file/nginx_n4/errlog:/nginx_file/errlog                   

        networks:                   
          front-tier:                   
            driver: bridge                  
          back-tier:                    
            driver: bridge                  
评论 (0)

点击这里取消回复。

欢迎您 游客  

Copyright © 2025 网站备案号 : 蜀ICP备2022017747号
smarty_hankin 主题. Designed by hankin
主页
页面
  • #1742(无标题)
博主
tang.show
tang.show 管理员
linux、centos、docker 、k8s、mysql等技术相关的总结文档
213 文章 2 评论 202005 浏览
测试
测试