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副本集。
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:27017
、localhost:27018
和 localhost: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}
|