Docker安装MongoDO
win 上安装的,在 Linux 上大差不差,数据和配置两个挂载 ,主要是为了测试
1. 拉取镜像
dockerfile
docker pull mongo
在 E:\docker\conf\ 创建 mongod.conf 配置文件
yaml
# MongoDB 8.0.15 配置文件
storage:
dbPath: /data/db
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
bindIp: 0.0.0.0
port: 27017
security:
authorization: enabled
processManagement:
timeZoneInfo: /usr/share/zoneinfo
setParameter:
enableLocalhostAuthBypass: false
2. 挂载
dockerfile
docker run -d --name mongo -p 27017:27017 -v E:/docker/mongodb/data:/data/db -v E:/docker/mongodb/conf/mongod.conf:/etc/mongod.conf -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123456 mongo --config /etc/mongod.conf
docker run: 启动容器
-d: docker 后台运行
-name: 为容器创建名字
-e: 设置容器内的环境变量
-p 8848:8848: 将宿主机的27017端口映射到容器内的27017端口,mongodb的默认服务器端口是27017,外部访问要通过该端口;
mongo: 指定要运行的镜像和版本。
3. 引入依赖
java
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-boot.version>3.2.6</spring-boot.version>
<mybatis-plus.version>3.5.11</mybatis-plus.version>
</properties>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
5. application.yml 文件
yaml
spring:
data:
mongodb:
authentication-database: 0
uri: mongodb://admin:123456@localhost:27017/chat_memory_db?authSource=admin
username: admin
password: 123456
6. DO对象
java
package com.ihteima.domain.dos;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* ClassName: ChatMessage
* Package: com.ihteima.domain.dos
* Description:
*
* @Auther
* @Create 2025/10/28 14:23
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document("chat_message")
public class ChatMessage {
@Id
private Long messageId;
//private Long messageId;
private String content; //存储当前聊天记录列表的json字符串
}
6. test
java
@SpringBootTest
public class MongoTest {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void test(){
mongoTemplate.insert(new ChatMessage(1L, "你是谁"));
}
}
