中间件部署

1. Mysql部署

1.1 Docker方式部署

1
2
3
docker run --name mysql8-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password -d mysql:8.0

docker exec -it mysql8-container mysql -u root -p

2. MINIO部署

2.1 Docker方式部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  
docker container rm /minio
docker run -p 19000:9000 -p 19001:9001 -d --name minio \
-e "MINIO_ROOT_USER=your_access_key" \
-e "MINIO_ROOT_PASSWORD=your_secret_key" \
bitnami/minio:2023.10.25


docker container rm /https-minio
docker run --privileged=true --name https-minio \
--publish 29000:9000 \
--publish 29001:9001 \
--volume /root/cert:/certs \
--env MINIO_SCHEME=https \
--env BITNAMI_DEBUG=true \
--env MINIO_ROOT_USER='my_access_key' \
--env MINIO_ROOT_PASSWORD='my_secret_key' \
bitnami/minio:latest

docker run --name minio \
--publish 9000:9000 \
--publish 9001:9001 \
--volume /path/to/certs:/certs \
--env MINIO_SCHEME=https
bitnami/minio:latest

3. MongoDB部署

要使用Dockerfile搭建本地MongoDB副本集(replica set)并暴露接口,可以按照以下步骤操作:

3.1 创建Dockerfile

首先,创建一个名为 Dockerfile 的文件。此Dockerfile将用于构建包含MongoDB的Docker镜像,并配置副本集。

1
2
3
4
5
FROM mongo:latest

# Create the replica set initialization script
COPY ./init-replica-set.js /docker-entrypoint-initdb.d/

3.2 创建初始化脚本

创建一个名为 init-replica-set.js 的文件,用于初始化副本集。

1
2
3
4
5
6
7
8
9
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "mongo1:27017" },
{ _id: 1, host: "mongo2:27017" },
{ _id: 2, host: "mongo3:27017" }
]
});

3.3 创建Docker Compose文件

创建一个 docker-compose.yml 文件来定义和运行多容器Docker应用程序。在这个文件中,我们定义了三个MongoDB实例,并将它们配置为副本集。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: '3.8'

services:
mongo1:
image: mongo:latest
container_name: mongo1
ports:
- 27017:27017
networks:
- mongo-network
volumes:
- ./init-replica-set.js:/docker-entrypoint-initdb.d/init-replica-set.js
command: ["mongod", "--replSet", "rs0"]

mongo2:
image: mongo:latest
container_name: mongo2
ports:
- 27018:27017
networks:
- mongo-network
command: ["mongod", "--replSet", "rs0"]

mongo3:
image: mongo:latest
container_name: mongo3
ports:
- 27019:27017
networks:
- mongo-network
command: ["mongod", "--replSet", "rs0"]

networks:
mongo-network:
driver: bridge

3.4 构建和启动容器

使用Docker Compose构建和启动MongoDB副本集。

1
docker-compose up -d

3.5 初始化副本集

一旦所有容器都启动并运行,进入其中一个容器并运行初始化脚本。

1
2
3
4
5
6
7
8
9
docker exec -it mongo1 mongo --eval "rs.initiate({
_id: 'rs0',
members: [
{ _id: 0, host: 'mongo1:27017' },
{ _id: 1, host: 'mongo2:27017' },
{ _id: 2, host: 'mongo3:27017' }
]
})"

现在,你已经使用Dockerfile和Docker Compose在本地设置了一个MongoDB副本集,并暴露了必要的端口。你可以通过连接到 localhost:27017localhost:27018localhost:27019 来访问MongoDB副本集。

4. PG部署

4.1 Docker方式部署

5. hive部署

5.1 docker方式部署

This is lightweight and for a quick setup, it uses Derby as metastore db.

1
2
export HIVE_VERSION=3.1.3
docker run --add-host dev-69:172.168.30.69 -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 --name hive3 apache/hive:${HIVE_VERSION}