From 69706c54054aba3b122ba3fb2e53982ae5eb007e Mon Sep 17 00:00:00 2001 From: FNS Service Date: Tue, 21 Apr 2026 20:16:50 +0800 Subject: [PATCH] Update from Sync Service --- Docker/CentOS7设置Docker开机自启动.md | 71 ++++++++++++++ Docker/Docker安装Redis.md | 128 ++++++++++++++++++++++++++ Docker/Docker部署MongoDB.md | 114 +++++++++++++++++++++++ Docker/INDEX_Docker.md | 7 +- 4 files changed, 316 insertions(+), 4 deletions(-) create mode 100755 Docker/CentOS7设置Docker开机自启动.md create mode 100755 Docker/Docker安装Redis.md create mode 100755 Docker/Docker部署MongoDB.md diff --git a/Docker/CentOS7设置Docker开机自启动.md b/Docker/CentOS7设置Docker开机自启动.md new file mode 100755 index 0000000..ebce3c3 --- /dev/null +++ b/Docker/CentOS7设置Docker开机自启动.md @@ -0,0 +1,71 @@ +# CentOS 7 设置 Docker 开机自启动 + +## 1. 设置 Docker 开机启动 + +```bash +# 启用 Docker 服务开机自启 +systemctl enable docker + +# 验证设置 +systemctl is-enabled docker +``` + +## 2. 设置容器自动重启 + +### 方式一:创建容器时指定 + +```bash +docker run -d --restart=always --name <容器名> <镜像> +``` + +`--restart` 参数选项: + +| 值 | 说明 | +|----|------| +| `no` | 容器退出时不重启(默认) | +| `on-failure` | 仅在非 0 状态退出时重启 | +| `on-failure:3` | 非 0 退出时最多重启 3 次 | +| `always` | 无论退出状态如何都重启 | +| `unless-stopped` | 除非手动停止,否则始终重启 | + +### 方式二:修改已有容器 + +```bash +# 更新容器重启策略 +docker update --restart=always <容器ID或名称> + +# 示例 +docker update --restart=always my-redis +docker update --restart=always 8a3c5f7d2e91 +``` + +## 3. 批量设置所有容器 + +```bash +# 将所有容器设置为自动重启 +docker update --restart=always $(docker ps -aq) +``` + +## 4. 验证配置 + +```bash +# 查看容器重启策略 +docker inspect <容器名> --format='{{.HostConfig.RestartPolicy.Name}}' + +# 查看所有容器的重启策略 +docker ps --format '{{.Names}}: {{.Status}}' +``` + +## 常见问题 + +**Q:容器内应用崩溃退出后,Docker 会重启容器吗?** + +A:`--restart=always` 会在容器退出时自动重启。但如果容器内应用不断崩溃,Docker 会不断重启,可能造成死循环。建议使用健康检查机制。 + +**Q:服务器重启后,容器启动顺序重要吗?** + +A:如果容器有依赖关系(如 Web 应用依赖数据库),需要考虑启动顺序。可使用 `docker-compose` 的 `depends_on` 或设置重启策略的 `condition`。 + +--- + +> 参考:[Docker 官方文档 - 重启策略](https://docs.docker.com/config/containers/start-containers-automatically/) diff --git a/Docker/Docker安装Redis.md b/Docker/Docker安装Redis.md new file mode 100755 index 0000000..d55cd41 --- /dev/null +++ b/Docker/Docker安装Redis.md @@ -0,0 +1,128 @@ +# Docker 安装 Redis + +## 1. 下载 Redis 镜像 + +```bash +docker pull redis:latest + +# 或者指定版本 +docker pull redis:7-alpine +``` + +## 2. 创建本地目录 + +```bash +# 创建配置和数据目录 +mkdir -p redis/conf redis/data +``` + +## 3. 创建 Redis 配置文件 + +```bash +cat > redis/conf/redis.conf << 'EOF' +# 基本配置 +bind 0.0.0.0 +protected-mode no +port 6379 + +# 持久化 +appendonly yes +appendfilename "appendonly.aof" + +# 内存管理 +maxmemory 256mb +maxmemory-policy allkeys-lru + +# 日志 +loglevel notice +EOF +``` + +## 4. 启动 Redis 容器 + +```bash +docker run -d \ + --name redis \ + -p 6379:6379 \ + -v $PWD/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \ + -v $PWD/redis/data:/data \ + redis:latest \ + redis-server /usr/local/etc/redis/redis.conf +``` + +### 参数说明 + +| 参数 | 说明 | +|------|------| +| `-d` | 后台运行 | +| `--name redis` | 容器名称 | +| `-p 6379:6379` | 端口映射 | +| `-v .../redis.conf:...` | 配置文件挂载 | +| `-v .../data:/data` | 数据目录挂载 | +| `redis-server ...` | 使用指定配置文件启动 | + +## 5. 连接测试 + +```bash +# 使用 redis-cli 连接 +docker exec -it redis redis-cli + +# 或者直接用 redis-cli(如果主机已安装) +redis-cli + +# 测试 +> PING +PONG + +> SET test "hello" +OK + +> GET test +"hello" +``` + +## 6. 常用运维命令 + +```bash +# 查看容器状态 +docker ps | grep redis + +# 查看日志 +docker logs -f redis + +# 进入容器 +docker exec -it redis sh + +# 停止/启动 +docker stop redis +docker start redis +``` + +## 7. 无配置文件快速启动 + +如果不需要自定义配置: + +```bash +docker run -d \ + --name redis \ + -p 6379:6379 \ + -v redis-data:/data \ + redis:latest \ + redis-server --appendonly yes +``` + +## 8. 数据备份 + +Redis 数据存储在 `/data` 目录(已挂载到本地): + +```bash +# 备份 +tar -czvf redis-backup-$(date +%Y%m%d).tar.gz redis/data/ + +# 恢复 +tar -xzvf redis-backup-xxxxxxxx.tar.gz +``` + +--- + +> 参考:[Redis Docker 官方文档](https://hub.docker.com/_/redis) diff --git a/Docker/Docker部署MongoDB.md b/Docker/Docker部署MongoDB.md new file mode 100755 index 0000000..514b553 --- /dev/null +++ b/Docker/Docker部署MongoDB.md @@ -0,0 +1,114 @@ +# Docker 部署 MongoDB + +## 1. 下载 MongoDB 镜像 + +```bash +docker pull mongo:latest + +# 查看已下载的镜像 +docker images mongo +``` + +## 2. 启动 MongoDB 容器 + +```bash +docker run -d \ + --name mongodb \ + -p 27017:27017 \ + -v $PWD/data:/data/db \ + mongo:latest +``` + +### 参数说明 + +| 参数 | 说明 | +|------|------| +| `-d` | 后台运行 | +| `--name mongodb` | 容器名称 | +| `-p 27017:27017` | 端口映射(主机:容器) | +| `-v $PWD/data:/data/db` | 数据卷挂载,持久化存储 | + +## 3. 配置认证(可选,推荐) + +```bash +# 创建管理员账号 +docker exec -it mongodb mongosh admin + +# 在 mongosh 中执行 +db.createUser({ + user: "admin", + pwd: "你的密码", + roles: [{ role: "root", db: "admin" }] +}) + +# 退出 +exit +``` + +### 带认证启动 + +```bash +docker stop mongodb +docker rm mongodb + +docker run -d \ + --name mongodb \ + -p 27017:27017 \ + -v $PWD/data:/data/db \ + -e MONGO_INITDB_ROOT_USERNAME=admin \ + -e MONGO_INITDB_ROOT_PASSWORD=你的密码 \ + mongo:latest --auth +``` + +## 4. 连接测试 + +```bash +# 方式一:使用 mongosh 连接 +docker exec -it mongodb mongosh --host 127.0.0.1 + +# 方式二:从另一容器连接 +docker run -it --rm \ + --link mongodb:mongo \ + mongo:latest \ + mongosh --host mongo + +# 方式三:从主机连接(需要安装 mongosh) +mongosh mongodb://admin:密码@localhost:27017 +``` + +看到以下提示说明部署成功: + +``` +It looks like you are trying to access MongoDB over HTTP on the native driver port. +``` + +## 5. 常用管理命令 + +```bash +# 查看容器状态 +docker ps | grep mongodb + +# 查看日志 +docker logs -f mongodb + +# 进入容器 +docker exec -it mongodb bash + +# 停止/启动 +docker stop mongodb +docker start mongodb +``` + +## 6. 数据备份与恢复 + +```bash +# 备份(数据在挂载的 $PWD/data 目录中) +tar -czvf mongodb-backup-$(date +%Y%m%d).tar.gz data/ + +# 恢复 +tar -xzvf mongodb-backup-xxxxxxxx.tar.gz +``` + +--- + +> 参考:[MongoDB Docker 官方文档](https://hub.docker.com/_/mongo) diff --git a/Docker/INDEX_Docker.md b/Docker/INDEX_Docker.md index a903807..4989ae3 100755 --- a/Docker/INDEX_Docker.md +++ b/Docker/INDEX_Docker.md @@ -17,14 +17,13 @@ updated: 2026-04-21 ### 基础入门 | 笔记 | 说明 | |------|------| -| [[Docker安装redis]] | Redis 容器化部署 | -| [[Docker 部署 MongoDB]] | MongoDB 容器化部署 | -| [[Docker-Compose安装]] | Docker Compose 安装 | +| [[Docker安装Redis]] | Redis 容器化部署 | +| [[Docker部署MongoDB]] | MongoDB 容器化部署 | ### 运维管理 | 笔记 | 说明 | |------|------| -| [[CentOS 7 设置 Docker 开机自启动]] | Docker 及容器自启动配置 | +| [[CentOS7设置Docker开机自启动]] | Docker 及容器自启动配置 | | [[Docker镜像清理]] | 清理无用镜像 | | [[批量删除已停止容器]] | 批量清理已停止容器 |