前置准备
首先创建所有服务的数据持久化目录:
1# 创建统一的数据存储目录
2mkdir -p ~/docker-data/{postgres,redis,rabbitmq}# 创建统一的数据存储目录
mkdir -p ~/docker-data/{postgres,redis,rabbitmq}服务部署
PostgreSQL(支持向量扩展,端口5433)
1# 拉取支持向量扩展的PostgreSQL镜像
2docker pull pgvector/pgvector:pg17
3
4# 启动PostgreSQL容器
5docker run -d \
6 --name postgres \
7 --restart unless-stopped \
8 -m 512m \
9 -e POSTGRES_PASSWORD=123456 \
10 -e POSTGRES_DB=myapp \
11 -v ~/docker-data/postgres:/var/lib/postgresql/data \
12 -p 5433:5432 \
13 pgvector/pgvector:pg17# 拉取支持向量扩展的PostgreSQL镜像
docker pull pgvector/pgvector:pg17
# 启动PostgreSQL容器
docker run -d \
--name postgres \
--restart unless-stopped \
-m 512m \
-e POSTGRES_PASSWORD=123456 \
-e POSTGRES_DB=myapp \
-v ~/docker-data/postgres:/var/lib/postgresql/data \
-p 5433:5432 \
pgvector/pgvector:pg17启用向量扩展(首次启动后执行):
1docker exec -it postgres psql -U postgres -d myapp -c "CREATE EXTENSION IF NOT EXISTS vector;"docker exec -it postgres psql -U postgres -d myapp -c "CREATE EXTENSION IF NOT EXISTS vector;"连接测试:
1docker exec -it postgres psql -U postgres -d myapp -c "SELECT 1+1;"
2# 返回 ?column? | 2 表示成功docker exec -it postgres psql -U postgres -d myapp -c "SELECT 1+1;"
# 返回 ?column? | 2 表示成功Redis(缓存服务,端口6380)
1# 拉取Redis镜像
2docker pull redis:7-alpine
3
4# 启动Redis容器
5docker run -d \
6 --name redis \
7 --restart unless-stopped \
8 -m 128m \
9 -v ~/docker-data/redis:/data \
10 -p 6380:6379 \
11 redis:7-alpine \
12 redis-server --maxmemory 128mb --maxmemory-policy allkeys-lru --requirepass 123456 --appendonly yes# 拉取Redis镜像
docker pull redis:7-alpine
# 启动Redis容器
docker run -d \
--name redis \
--restart unless-stopped \
-m 128m \
-v ~/docker-data/redis:/data \
-p 6380:6379 \
redis:7-alpine \
redis-server --maxmemory 128mb --maxmemory-policy allkeys-lru --requirepass 123456 --appendonly yes连接测试:
1docker exec -it redis redis-cli -a 123456 ping
2# 返回 PONG 表示成功docker exec -it redis redis-cli -a 123456 ping
# 返回 PONG 表示成功RabbitMQ(消息队列,端口5673/15673)
1# 拉取带管理界面的RabbitMQ镜像
2docker pull rabbitmq:4-management-alpine
3
4# 启动RabbitMQ容器
5docker run -d \
6 --name rabbitmq \
7 --restart unless-stopped \
8 -m 384m \
9 -v ~/docker-data/rabbitmq:/var/lib/rabbitmq \
10 -p 5673:5672 \
11 -p 15673:15672 \
12 -e RABBITMQ_DEFAULT_USER=admin \
13 -e RABBITMQ_DEFAULT_PASS=123456 \
14 rabbitmq:4-management-alpine# 拉取带管理界面的RabbitMQ镜像
docker pull rabbitmq:4-management-alpine
# 启动RabbitMQ容器
docker run -d \
--name rabbitmq \
--restart unless-stopped \
-m 384m \
-v ~/docker-data/rabbitmq:/var/lib/rabbitmq \
-p 5673:5672 \
-p 15673:15672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=123456 \
rabbitmq:4-management-alpine管理界面访问: http://你的IP:15673,账号 admin / 密码 123456
MySQL(备用数据库,端口3307)
如需要MySQL作为备用数据库,可使用以下配置:
1# 拉取MySQL镜像
2docker pull mysql:8.0
3
4# 启动MySQL容器
5docker run -d \
6 --name mysql \
7 --restart unless-stopped \
8 -m 512m \
9 -e MYSQL_ROOT_PASSWORD=123456 \
10 -e MYSQL_DATABASE=myapp \
11 -v ~/docker-data/mysql:/var/lib/mysql \
12 -p 3307:3306 \
13 mysql:8.0 \
14 --innodb_buffer_pool_size=256M# 拉取MySQL镜像
docker pull mysql:8.0
# 启动MySQL容器
docker run -d \
--name mysql \
--restart unless-stopped \
-m 512m \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=myapp \
-v ~/docker-data/mysql:/var/lib/mysql \
-p 3307:3306 \
mysql:8.0 \
--innodb_buffer_pool_size=256M服务连接信息汇总
| 服务 | 内部端口 | 外部端口 | 账号 | 密码 |
|---|---|---|---|---|
| PostgreSQL | 5432 | 5433 | postgres | 123456 |
| Redis | 6379 | 6380 | (无) | 123456 |
| RabbitMQ | 5672 | 5673 | admin | 123456 |
| RabbitMQ 管理界面 | 15672 | 15673 | admin | 123456 |
| MySQL (备用) | 3306 | 3307 | root | 123456 |
本文采用
CC BY-NC-SA 4.0
协议,由
撷时录
发布。
喜欢这篇文章的人也看了