docker 启动中间件

docker 启动 MySQL

sh 复制代码
# 创建目录
mkdir -p /Users/dongdong/software/mysql/{conf,data}


docker run -d \
-p 3306:3306 \
-v /Users/dongdong/software/mysql/conf:/etc/mysql/conf.d \
-v /Users/dongdong/software/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql-8.0.29 \
mysql:8.0.29

docker run -d \
-p 3306:3306 \
-v /data/mysql/conf:/etc/mysql/conf.d \
-v /data/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=YUANfang888 \
--name mysql-8.0.29 \
mysql:8.0.29

docker 启动 PostgreSQL

sh 复制代码
# 创建目录
mkdir -p /Users/dongdong/software/pgsql/{conf,data}

docker run --name postgres \
-e POSTGRES_PASSWORD=postgres \
-p 5432:5432 \
-v /Users/dongdong/software/pgsql/data:/var/lib/postgresql/data \
-d postgres:17.4

docker 启动 Oracle

sh 复制代码
# 内存至少为4G
# 创建目录
mkdir -p /Users/dongdong/software/oracle/{conf,data}

# 下载镜像
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
 
# 创建文件
mkdir -p /data/oracle/data
 
# 授权,不授权会导致后面安装失败
chmod 777 /data/oracle/data

# 默认账号 SYSTEM
 
# 启动容器
docker run -d \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=ORCLCDB \
-e ORACLE_PDB=ORCLPDB \
-e ORACLE_PWD=123456 \
-e ORACLE_EDITION=standard \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-v /data/oracle/data:/opt/oracle/oradata \
--name oracle \
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

docker 启动 SQLServer

sh 复制代码
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=DongDong@YUANfang888" \
   -p 1433:1433 --name sql1 --hostname sql1 \
   -d \
   mcr.microsoft.com/mssql/server:2019-latest

docker 启动 MariaDB

sh 复制代码
# 创建目录
mkdir -p /Users/dongdong/software/mariadb/{conf,data}

docker run --name mariadb \
-p 13306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-v /Users/dongdong/software/mariadb/data:/var/lib/mysql \
-d \
mariadb:11.7.2

docker 启动 Redis

sh 复制代码
# 创建文件目录
mkdir -p /Users/dongdong/software/redis/{conf,data}

# 进入配置目录
cd /Users/dongdong/software/redis/conf
# 创建配置文件
vi redis.conf

# 开启持久化存储
appendonly yes
port 6379
# 为了禁止外网访问redis 默认是true
protected-mode no


docker run -d -p 6379:6379 -v /Users/dongdong/software/redis/conf:/etc/redis/conf -v /Users/dongdong/software/redis/data:/data --name redis redis:6.2.17 redis-server /etc/redis/conf/redis.conf

docker 启动 Minio

sh 复制代码
# 创建目录
mkdir -p /Users/dongdong/software/minio/{conf,data}


# 运行
docker run --name minio \
-d -p 9000:9000  -p 9001:9001 -e "MINIO_ROOT_USER=dongdong" \
-e "MINIO_ROOT_PASSWORD=dongdong"  -e "MINIO_COMPRESS=off" \
-v /Users/dongdong/software/minio/data:/data \
-v /Users/dongdong/software/minio/conf:/root/.minio/ \
quay.io/minio/minio:RELEASE.2022-08-02T23-59-16Z \
server --address ':9000' --console-address ":9001" /data

# 进入控制面板
http://localhost:9001   账号: dongdong 密码: dongdong

docker 启动 RabbitMQ

sh 复制代码
# 启动
docker run -d --hostname rabbitmq --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq:3.13

# 运行命令
rabbitmq-plugins enable rabbitmq_management
# 如果出现异常 则输入umask 0022
rabbitmqctl add_user dongdong dongdong          # 添加用户
rabbitmqctl set_permissions -p / dongdong ".*" ".*" ".*" # 赋予admin用户所有权限
rabbitmqctl set_user_tags dongdong administrator         # 赋予admin用户administrator角色

docker 启动 RocketMQ

sh 复制代码
# 创建网络
docker network create rocketmq

# 创建目录
mkdir -p /Users/dongdong/software/rocketmq/namesrv/{logs,store}
mkdir -p /Users/dongdong/software/rocketmq/broker/{conf,logs,store}

# 启动nameServer
docker run -d --name nameserver \
-p 9876:9876 --network rocketmq \
-v /Users/dongdong/software/rocketmq/namesrv/logs:/root/logs \
-v /Users/dongdong/software/rocketmq/namesrv/store:/root/store \
apache/rocketmq:5.3.1 sh mqnamesrv


# 创建brocker.conf 配置文件
# 配置 Broker 的IP地址
# brokerIP1 写 ip地址 
# echo "brokerIP1=192.168.31.199" > /opt/software/rocketmq/broker/conf/broker.conf
echo "brokerIP1=broker" > /Users/dongdong/software/rocketmq/broker/conf/broker.conf

# 启动broker
docker run -d \
--name broker \
--network rocketmq \
-p 10912:10912 -p 10911:10911 -p 10909:10909 \
-p 8080:8080 -p 8081:8081 \
-e "NAMESRV_ADDR=nameserver:9876" \
-v /Users/dongdong/software/rocketmq/broker/conf/broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf \
-v /Users/dongdong/software/rocketmq/broker/logs:/root/logs \
-v /Users/dongdong/software/rocketmq/broker/store:/root/store \
apache/rocketmq:5.3.1 sh mqbroker --enable-proxy \
-c /home/rocketmq/rocketmq-5.3.1/conf/broker.conf

# 部署dashboard
# JAVA_OPTS=-Drocketmq.namesrv.addr=nameserver:9876
# rocketmq.namesrv.addr 填写本机ip
docker run -d --name rocketmq-dashboard --network rocketmq \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=nameserver:9876" \
-p 9999:8080 weiweiplus/rocketmq-console-arm64:4.5.0

docker 启动 Nacos

sh 复制代码
# 准备数据库表文件
/*
 * Copyright 1999-2018 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/******************************************/
/*   表名称 = config_info                  */
/******************************************/
CREATE TABLE `config_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) DEFAULT NULL COMMENT 'group_id',
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  `c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description',
  `c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage',
  `effect` varchar(64) DEFAULT NULL COMMENT '配置生效的描述',
  `type` varchar(64) DEFAULT NULL COMMENT '配置的类型',
  `c_schema` text COMMENT '配置的模式',
  `encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';

/******************************************/
/*   表名称 = config_info_aggr             */
/******************************************/
CREATE TABLE `config_info_aggr` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
  `content` longtext NOT NULL COMMENT '内容',
  `gmt_modified` datetime NOT NULL COMMENT '修改时间',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';


/******************************************/
/*   表名称 = config_info_beta             */
/******************************************/
CREATE TABLE `config_info_beta` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  `encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';

/******************************************/
/*   表名称 = config_info_tag              */
/******************************************/
CREATE TABLE `config_info_tag` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  `tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';

/******************************************/
/*   表名称 = config_tags_relation         */
/******************************************/
CREATE TABLE `config_tags_relation` (
  `id` bigint(20) NOT NULL COMMENT 'id',
  `tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
  `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  `nid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增长标识',
  PRIMARY KEY (`nid`),
  UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';

/******************************************/
/*   表名称 = group_capacity               */
/******************************************/
CREATE TABLE `group_capacity` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
  `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';

/******************************************/
/*   表名称 = his_config_info              */
/******************************************/
CREATE TABLE `his_config_info` (
  `id` bigint(20) unsigned NOT NULL COMMENT 'id',
  `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增标识',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  `op_type` char(10) DEFAULT NULL COMMENT 'operation type',
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
   `encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥',
  PRIMARY KEY (`nid`),
  KEY `idx_gmt_create` (`gmt_create`),
  KEY `idx_gmt_modified` (`gmt_modified`),
  KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';


/******************************************/
/*   表名称 = tenant_capacity              */
/******************************************/
CREATE TABLE `tenant_capacity` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
  `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';


CREATE TABLE `tenant_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `kp` varchar(128) NOT NULL COMMENT 'kp',
  `tenant_id` varchar(128) default '' COMMENT 'tenant_id',
  `tenant_name` varchar(128) default '' COMMENT 'tenant_name',
  `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
  `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
  `gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
  `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`),	
  UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';

CREATE TABLE `users` (
	`username` varchar(50) NOT NULL PRIMARY KEY COMMENT 'username',
	`password` varchar(500) NOT NULL COMMENT 'password',
	`enabled` boolean NOT NULL COMMENT 'enabled'
);

CREATE TABLE `roles` (
	`username` varchar(50) NOT NULL COMMENT 'username',
	`role` varchar(50) NOT NULL COMMENT 'role',
	UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);

CREATE TABLE `permissions` (
    `role` varchar(50) NOT NULL COMMENT 'role',
    `resource` varchar(128) NOT NULL COMMENT 'resource',
    `action` varchar(8) NOT NULL COMMENT 'action',
    UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);
        
# 创建目录
mkdir -p /Users/dongdong/software/nacos/conf

# 创建配置文件
vi application.properties
spring.sql.init.platform=mysql

db.num=1
db.url.0=jdbc:mysql://mysql-8.0.29:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

# 启动容器
docker run --name nacos \
--link mysql-8.0.29 \
-e MODE=standalone \
-v   /Users/dongdong/software/nacos/conf/application.properties:/home/nacos/conf/application.properties -p 8848:8848 -d -p 9848:9848  nacos/nacos-server:v2.4.2

docker 启动 GitLab

sh 复制代码
docker run --detach \
  --hostname gitlab.local.com \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.local.com'" \
  --publish 443:443 --publish 80:80 --publish 10022:22 \
  --name gitlab \
  --restart always \
  --volume /data/gitlab/config:/etc/gitlab \
  --volume /data/gitlab/logs:/var/log/gitlab \
  --volume /data/gitlab/data:/var/opt/gitlab \
  --shm-size 256m \
  192.168.31.85/arm64/gitlab:17.1.4-ce.0
  
# gitlab 迁移两个版本必须相同
# 获取密码 用户名 root
docker exec -it 容器名字或容器ID grep 'Password:' /etc/gitlab/initial_root_password

docker 启动 Nexus3

sh 复制代码
# 创建数据目录并设置正确权限
mkdir -p /data/nexus-data && chown -R 200:200 /data/nexus-data

# 运行Nexus容器
docker run -d \
  -p 8081:8081 \
  --name nexus \
  -v /data/nexus-data:/nexus-data \
  sonatype/nexus3:3.81.1
  
# 查看容器ID
docker ps -f name=nexus

# 获取初始密码
docker exec -it <容器ID> cat /nexus-data/admin.password
相关推荐
chen_note2 小时前
Dockerfile及其部署镜像步骤
docker·容器·镜像·dockerfile
Jy_06223 小时前
K8s中,deployment 是如何从 yaml 文件最终部署成功 pod 的
云原生·容器·kubernetes
mobº3 小时前
K8s 集群环境搭建 - yaml 版本(一)
云原生·容器·kubernetes
终端行者3 小时前
K8s中部署Minio集群 如何部署minio集群
云原生·容器·kubernetes·1024程序员节
杨浦老苏8 小时前
开源云文件存储服务器MyDrive
docker·群晖·网盘
PellyKoo8 小时前
Docker容器中中文文件名显示乱码问题完美解决方案
运维·docker·容器
无妄无望9 小时前
在没有网络的环境下安装包pymysql
学习·docker
奥尔特星云大使9 小时前
Docker 拉取 MySQL 5.7 镜像、启动容器并进入 MySQL
数据库·mysql·docker·容器
big男孩9 小时前
Docker使用环境变量的整理
docker
安卓开发者10 小时前
Docker与Nginx:现代Web部署的完美二重奏
前端·nginx·docker