diff --git a/Docker/Docker安装redis.md b/Docker/Docker安装redis.md index 178f2b9..d55cd41 100755 --- a/Docker/Docker安装redis.md +++ b/Docker/Docker安装redis.md @@ -1,17 +1,128 @@ -**Docker安装redis** -**1.首先下载redis镜像:** -docker pull redis -**2.然后创建一个文件夹用来存放redis的配置文件、数据等(也就是所谓的挂载目录,作用就是将此目录中的文件或文件夹覆盖掉容器内部的文件或文件夹)** -**3.在上面创建的目录下使用命令启动redis容器** -docker run -d -p 6379:6379 -v $PWD/conf/redis.conf:/usr/local/etc/redis/redis.conf -v $PWD/data:/data --name docker-redis docker.io/redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes -**解释一下上面命令的意义:** --d:表示后台运行,不加-d执行上面的命令你就会看到redis启动的日志信息了 --p:表示端口映射,冒号左面的是我们的宿主机的端口,也就是我们虚拟机的端口,而右侧则表示的是mysql容器内的端口 ---name:是我们给redis容器取的名字 --v:表示挂载路径,$PWD表示当前目录下,冒号左面的表示我们宿主机的挂载目录,也就是我们虚拟机所在的文件路径,冒号右边则表是的是redis容器在容器内部的路径,上面的命令我分别挂载了redis.conf(redis的配置文件),如需使用配置文件的方式启动redis,这里则需要加上,还有redis存放数据所在的目录 ---appendonly yes:表示redis开启持久化策略 +# Docker 安装 Redis -作者:GatHub -链接:https://www.jianshu.com/p/2f95680f21c5 -来源:简书 -著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 \ No newline at end of file +## 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/INDEX_Docker.md b/Docker/INDEX_Docker.md index 1d0362c..6f2310d 100755 --- a/Docker/INDEX_Docker.md +++ b/Docker/INDEX_Docker.md @@ -40,23 +40,23 @@ updated: 2026-04-21 ```bash # 镜像操作 -docker pull <镜像> # 下载镜像 -docker images # 查看本地镜像 -docker rmi <镜像> # 删除镜像 -docker image prune -f # 清理无用镜像 +docker pull <镜像> # 下载镜像 +docker images # 查看本地镜像 +docker rmi <镜像> # 删除镜像 +docker image prune -f # 清理无用镜像 # 容器操作 -docker ps -a # 查看所有容器 -docker run -d <镜像> # 后台运行容器 -docker stop <容器> # 停止容器 -docker rm <容器> # 删除容器 -docker logs <容器> # 查看容器日志 +docker ps -a # 查看所有容器 +docker run -d <镜像> # 后台运行容器 +docker stop <容器> # 停止容器 +docker rm <容器> # 删除容器 +docker logs <容器> # 查看容器日志 # 清理 -docker container prune # 删除已停止容器 (Docker 1.13+) -docker system prune -f # 清理所有未使用资源 +docker container prune # 删除已停止容器 (Docker 1.13+) +docker system prune -f # 清理所有未使用资源 ``` --- -*共 9 篇笔记* +*共 8 篇笔记* diff --git a/Docker/Rancher和Agent同主机运行.md b/Docker/Rancher和Agent同主机运行.md new file mode 100755 index 0000000..0ceb495 --- /dev/null +++ b/Docker/Rancher和Agent同主机运行.md @@ -0,0 +1,55 @@ +# 在同一主机运行 Rancher Server 和 Agent + +## 背景 + +当单个节点既作为 Rancher Server 又作为被管理的集群节点时,会有端口冲突: + +- Rancher Server 容器默认映射:`80` 和 `443` +- Rancher Agent 部署的 Ingress Controller 也使用:`80` 和 `443` + +## 解决方案 + +修改 Rancher 容器的主机端口映射,避免冲突。 + +## 操作步骤 + +### 1. 停止现有 Rancher 容器 + +```bash +docker stop rancher +docker rm rancher +``` + +### 2. 使用修改后的端口重新启动 + +```bash +docker run -d --restart=unless-stopped \ + -p 8080:80 -p 8443:443 \ + -v <主机路径>:/var/lib/rancher/ \ + rancher/rancher:latest +``` + +### 端口映射对照 + +| 原端口 | 新端口 | 说明 | +|--------|--------|------| +| 80 | 8080 | HTTP 入口 | +| 443 | 8443 | HTTPS 入口 | + +### 3. 访问 Rancher + +启动后通过新端口访问: +- HTTP:`http://<主机IP>:8080` +- HTTPS:`https://<主机IP>:8443` + +## 注意事项 + +> ⚠️ **不建议在生产环境中这样使用**,仅适合开发/演示环境。 + +生产环境建议: +- Rancher Server 单独部署 +- 管理节点和 workload 节点分开 + +--- + +> 参考:[Rancher 官方文档](https://docs.rancher.cn/rancher2x/faqs/important-issue.html) diff --git a/Docker/Rancher状态存储位置.md b/Docker/Rancher状态存储位置.md new file mode 100755 index 0000000..5810059 --- /dev/null +++ b/Docker/Rancher状态存储位置.md @@ -0,0 +1,48 @@ +# Rancher 单节点存储位置 + +## 存储位置 + +Rancher 单节点安装时,所有数据存储在 **Rancher 容器的内置 etcd** 中。 + +数据映射到宿主机的 `/var/lib/rancher` 目录: + +``` +/var/lib/rancher/ +├── k3s/ # K3s 数据 +├──rancher/ # Rancher 数据 +│ ├── etcd/ # 内置 etcd 数据库 +│ └── audit_log/ # 审计日志 +``` + +## 重要数据 + +| 路径 | 说明 | +|------|------| +| `/var/lib/rancher/rancher/` | Rancher 应用数据 | +| `/var/lib/rancher/k3s/` | K3s 集群数据 | + +## 备份建议 + +```bash +# 备份 Rancher 数据 +docker stop rancher +tar -czvf rancher-backup-$(date +%Y%m%d).tar.gz /var/lib/rancher/ +docker start rancher +``` + +## 恢复数据 + +```bash +# 停止 Rancher +docker stop rancher + +# 恢复数据 +tar -xzvf rancher-backup-xxxxxxxx.tar.gz -C / + +# 启动 Rancher +docker start rancher +``` + +--- + +> ⚠️ **注意**:生产环境建议使用 Rancher HA 部署,避免单点故障。