官方镜像
mongo
4.4
# 配置文件
systemLog:
destination: file # 指定一个文件
path: "/app/log/mongodb.log" # 日志位置
logAppend: true # 日志以追加模式记录
storage:
journal: # 是否开启redo日志
enabled: true
dbPath: "/app/data" # 数据存放的路径
processManagement:
fork: false # 后台守护进程
net:
port: 27017
bindIp: 0.0.0.0
# 安装镜像
docker pull mongo:4.4
# 创建要挂载的目录
mkdir -p /data/mongo/{db,log}
# 创建容器
docker run --restart=always --name <容器名称> \
-p 27017:27017 \
-e TZ=Asia/Shanghai \
-v <宿主机的db目录>:/data/db \
-v <宿主机的log目录:/data/log \
--privileged=true \
-e MONGO_INITDB_ROOT_USERNAME=<用户名> \
-e MONGO_INITDB_ROOT_PASSWORD=<密码> \
-d mongo:4.4
# 进入刚才创建的容器
docker exec -it <id> /bin/bash
# 进入数据库
$ mongo
# 查看admin表
use admin
# 验证账号权限
db.auth('设置的账号', '设置的密码') # 返回1 则成功
# 查看用户信息
db.system.users.find().pretty()
docker run --name mongo-test \
-p 27017:27017 \
-e TZ=Asia/Shanghai \
-v /home/test/temp/db/data:/app/data \
-v /home/test/temp/db/log:/app/log \
-v /home/test/temp/db/mongodb.yaml:/app/mongodb.yaml \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin.123 \
-it mongo:4.4 mongod --config /app/mongodb.yaml
redis
6.0
安装 Redis:
使用 Docker 默认下载最新版本镜像:
docker pull redis:<version>
docker search redis
docker pull redis:latest
docker pull redis:6.0.8
# 使用create构建容器后再start,或者直接使用run指令
docker create redis:6.0.16-alpine
docker run|start创建外部配置文件的存储位置,并创建配置文件:
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
启动 Redis 容器:
这里做文件映射,可以在不进入容器的情况下修改外部文件达到相同的效果,更加方便:
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
启动测试 Redis:
连接到 Redis 容器并测试:
docker exec -it redis redis-cli
注意:这里未进行数据持久化存储,重新启动 Redis 这些数据会消失。
数据持久化存储:
- 在容器外部修改配置文件,这样经过配置,在重启 Redis 时保存的数据便不会消失。
使用可视化工具连接 Redis:
- 通过可视化工具连接和操作 Redis 数据库,例如使用 Redis Desktop Manager。
运行参数
# run 指令详解
docker run
--restart=always # 守护进程开启
--log-opt max-size=100m # 日志最大尺寸
--log-opt max-file=4 # 日志最大文件数量
-p 6379:6379 # 关联端口,<宿主端口>:<镜像端口>
--name yibu-redis # 启动后的容器名称
--net=host # 网络模式,host是直接使用宿主机
-v {宿主机data目录}:/data # 挂载目录2,将数据保存在宿主机上
-v {宿主机}redis.conf:/etc/redis/redis.conf # 挂载conf文件
-d <redis镜像名> # 启动命令 同来添加启动后redis的参数
/etc/redis/redis.conf # 关联的配置文件,这个配置文件是上面挂载后的
# or
-–appendonly yes # 开启持久化
-–requirepass 000415 # 设置密码 非常重要!
- linux用例
docker run \
--log-opt max-size=100m \
--log-opt max-file=2 \
-p 6379:6379 \
--name yibu-redis-test \
--net=test \
-v /home/test/Project/app/redis/redis.conf:/etc/redis/redis.conf \
-v /home/test/Project/app/redis/data:/data \
-d redis:6.0.9 redis-server /etc/redis/redis.conf
docker run --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name yibu-redis-test --net=test -v /home/test/Project/app/redis/redis.conf:/etc/redis/redis.conf -v /home/test/Project/app/redis/data:/data -d redis:6.0.9 redis-server /etc/redis/redis.conf
docker exec -it yibu-redis-test /bin/bash