栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

docker-compose部署常用中间件

docker-compose部署常用中间件

目录

一、docker-compose部署mysql

二、docker-compose部署nginx

三、docker-compose部署redis(含主从)

四、docker-compose部署rabbitmq(含主从)


一、docker-compose部署mysql
[root@harbor mysql_cluster]# tree
.
├── conf
│   └── my.cnf
├── init.sql
├── mysqldb
└── mysql.yaml

cat  mysql.yaml

version: '3'
services:
    mysql:
        network_mode: "bridge"
        environment:
            MYSQL_ROOT_PASSWORD: "yourpassword"
            MYSQL_USER: 'test'
            MYSQL_PASS: 'yourpassword'
        image: "mysql:5.7.36"
        restart: always
        volumes:
            - "./mysqldb:/var/lib/mysql"
            - "./conf/my.cnf:/etc/my.cnf"
            #- "./init:/docker-entrypoint-initdb.d/"
        ports:
            - "13306:3306"

cat conf/my.cnf

[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

cat init.sql

create database test;
use test;
create table user
(
id int auto_increment primary key,
username varchar(64) unique not null,
email varchar(120) unique not null,
password_hash varchar(128) not null,
avatar varchar(128) not null
);
insert into user values(1, "zhangsan","test12345@qq.com","passwd","avaterpath");
insert into user values(2, "lisi","12345test@qq.com","passwd","avaterpath");
create database test;
use test;
create table user
(
id int auto_increment primary key,
username varchar(64) unique not null,
email varchar(120) unique not null,
password_hash varchar(128) not null,
avatar varchar(128) not null
);
insert into user values(1, "zhangsan","test12345@qq.com","passwd","avaterpath");
insert into user values(2, "lisi","12345test@qq.com","passwd","avaterpath");

启动:docker-compose -f mysql.yaml up -d

二、docker-compose部署nginx
[root@harbor service]# tree nginx/
nginx/
├── cert
├── conf
│   └── nginx.conf
├── conf.d
├── docker-compose-nginx.yml
└── html

vim conf/nginx.conf

worker_processes  1;

events {
    worker_connections  1024;
}


stream {
        server {
                listen 8640;
                proxy_pass ingress;
        }
        upstream ingress{
                server 192.168.216.226:443;
        }






}




http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    tcp_nopush     on;
    client_max_body_size 500m; 

    keepalive_timeout  200;

    gzip  on;
    gzip_vary on;
    gzip_min_length 1k;
    gzip_comp_level 4;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/javascript;
    gzip_disable "MSIE [1-6].";



}

vim docker-compose-nginx.yml

version: '3.1'
services:
    nginx:
        image: nginx:1.21.6     # 镜像名称
        container_name: nginx_lishanbin    # 容器名字
        restart: always     # 开机自动重启
        ports:     # 端口号绑定(宿主机:容器内)
            - '5880:80'
            - '6443:443'
        volumes:      # 目录映射(宿主机:容器内)
            - ./conf/nginx.conf:/etc/nginx/nginx.conf
            - ./conf.d:/etc/nginx/conf.d
            - ./html:/usr/share/nginx/html
            - ./cert:/etc/nginx/cert

三、docker-compose部署redis(含主从)
[root@harbor redis]# tree .
.
├── conf
│   └── redis.conf
├── data
│   ├── appendonly.aof
│   └── dump.rdb
└── redis.yaml
requirepass test@dbuser2018
appendonly yes

cat conf/redis.conf

requirepass test@dbuser2018
appendonly yes

cat redis.yaml

  master:
    image: redis:6.2.6
    container_name: redis-master
    restart: always
    command: redis-server --port 6379 --requirepass test@dbuser2018  --appendonly yes
    ports:
      - 6379:6379
    volumes:
      - ./data:/data
      - ./conf/redis.conf:/etc/redis/redis.conf:rw
 
  slave1:
    image: redis:6.2.6
    container_name: redis-slave-1
    restart: always
    command: redis-server --slaveof 192.168.216.227 6379 --port 6380  --requirepass test@dbuser2018 --masterauth test@dbuser2018  --appendonly yes
    ports:
      - 6380:6380
    volumes:
      - ./data:/data
 
 
  slave2:
    image: redis:6.2.6
    container_name: redis-slave-2
    restart: always
    command: redis-server --slaveof 192.168.216.227 6379 --port 6381  --requirepass test@dbuser2018 --masterauth test@dbuser2018  --appendonly yes
    ports:
      - 6381:6381
    volumes:
      - ./data:/data

四、docker-compose部署rabbitmq(含主从)

镜像选择:
选择rabbitmq:3-management是因为带有web管理功能的
如果是rabbit:3.7.8 这种版本 需要进入容器内部执行

docker exec -it rabbitmq bash
rabbitmq-plugins enable rabbitmq_management

[root@harbor rabbitmq]# tree .
.
├── log
├── data
└── rabbitmq.yaml

vim rabbitmq.yaml

version: '3'
 
services:
  rabbitmq1:
    image: rabbitmq:3.8.3-management
    container_name: rabbitmq1
    restart: always
    hostname: rabbitmq1
    extra_hosts:
      - "rabbitmq1:192.168.216.227"
      - "rabbitmq2:192.168.207.97"
    ports:
      - 4369:4369     #erlang发现口
      - 25672:25672   #server间内部通信口
      - 15672:15672   #管理界面ui端口
      - 5672:5672     ##client端通信口
      - 5671:5671
    volumes:
      - ./data:/var/lib/rabbitmq
      - ./log:/var/log/rabbitmq/log"
      #- /etc/hosts:/etc/hosts
      - /etc/localtime:/etc/localtime
       
    environment:
      - RABBITMQ_DEFAULT_USER=root
      - RABBITMQ_DEFAULT_PASS=root
      - RABBITMQ_ERLANG_cookie=CURIOAPPLICATION

主从:各节点rabbitmq的存储方式,即节点1是disk,节点2和节点3都是ram

默认情况下,RabbitMQ 启动后是磁盘节点,如果想以内存节点方式加入,可以加 --ram 参数。

如果想要修改节点类型,可以使用命令:

# rabbitmqctl change_cluster_node_type disc(ram)

创建主从:

disk节点(节点1主节点)执行:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

ram节点(节点2和节点3)执行:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq1
rabbitmqctl start_app 

检查节点状态:

rabbitmqctl cluster_status

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/761745.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号