Update from Sync Service

This commit is contained in:
FNS Service
2026-04-21 20:00:16 +08:00
parent e1e983f8f3
commit 989da7194a
6 changed files with 407 additions and 104 deletions

View File

@@ -1,88 +1,114 @@
1.镜像下载 # Docker 部署 MongoDB
下载 `MongoDB` 镜像命令:
``` ## 1. 下载 MongoDB 镜像
```
docker pull mongo
```
```
执行 `docker images` 查看镜像,下载成功,如下图:
2.启动 `MongoDB` ```bash
启动 `MongoDB` 命令: docker pull mongo:latest
``` # 查看已下载的镜像
``` docker images mongo
docker run -p 27017:27017 -v $PWD/db:/data/db -d mongo:latest
``` ```
``` ## 2. 启动 MongoDB 容器
## 命令说明:
``` ```bash
``` docker run -d \
-p 27017:27017 : --name mongodb \
-p 27017:27017 \
-v $PWD/data:/data/db \
mongo:latest
``` ```
``` ### 参数说明
## 将容器的
``` | 参数 | 说明 |
``` |------|------|
27017 | `-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
27017 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 连接
-v $PWD/db:/data/db : 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
``` ```
``` 看到以下提示说明部署成功:
## 将主机中当前目录下的**`db`**挂载到容器的
``` ```
``` It looks like you are trying to access MongoDB over HTTP on the native driver port.
/data/db
``` ```
``` ## 5. 常用管理命令
**,作为**`mongo`**数据存储目录**``
启动成功,如下图:
3.测试连接 `MongoDB` ```bash
连接 `MongoDB` 命令: # 查看容器状态
docker ps | grep mongodb
``` # 查看日志
``` docker logs -f mongodb
docker run -it mongo:latest mongo --host 172.17.0.1
# 进入容器
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
``` ```
``` ---
## 使用**`mongo`**镜像执行**`mongo` **命令连接到刚启动的容器**`,`**主机**`IP`**为
``` > 参考:[MongoDB Docker 官方文档](https://hub.docker.com/_/mongo)
```
172.17.0.1
```
```
提示信息 `It looks like you are trying to access MongoDB over HTTP on the native driver port.` nice部署 `MongoD` 成功!

View File

@@ -1,28 +1,62 @@
--- ---
title: Docker 索引 title: Docker 索引
tags: tags:
- Docker
- 容器
- 索引 - 索引
created: 2026-04-21 created: 2026-04-21
updated: 2026-04-21
--- ---
# Docker # Docker 知识索引
> 自动生成的索引文件 > 容器技术学习笔记汇总
## 文件列表 ## 📚 目录
| 文件名 | 大小 | 说明 | ### 基础入门
|--------|------|------| | 笔记 | 说明 |
| [[Docker 部署 MongoDB]] | 1KB | | |------|------|
| [[Docker安装redis]] | 1KB | | | [[Docker安装redis]] | Redis 容器化部署 |
| [[Rancher_Rancher的状态存储在什么地方]] | 619B | | | [[Docker 部署 MongoDB]] | MongoDB 容器化部署 |
| [[Rancher_如何在同一个主机上运行Rancher-Rancher和Rancher-Rancher-Agent]] | 957B | | | [[安装docker-compose]] | Docker Compose 安装 |
| [[centos7设置docker开机自启动并设置容器自动重启]] | 837B | |
| [[docker rm & docker rmi & docker prune 的差异]] | 196B | | ### 运维管理
| [[docker rm & docker rmi & docker prune 的差异]] | 196B | | | 笔记 | 说明 |
| [[docker镜像清理]] | 485B | | |------|------|
| [[如何批量删除Docker中已经停止的容器]] | 1KB | | | [[centos7设置docker开机自启动]] | Docker 及容器自启动配置 |
| [[安装docker-compose]] | 545B | | | [[docker镜像清理]] | 清理无用镜像 |
| [[如何批量删除Docker中已经停止的容器]] | 批量清理已停止容器 |
### Rancher
| 笔记 | 说明 |
|------|------|
| [[Rancher状态存储位置]] | Rancher 单节点存储位置 |
| [[Rancher和Agent同主机运行]] | 单节点运行 Rancher + Agent |
--- ---
*共 10 个文件*
## 🔧 常用命令速查
```bash
# 镜像操作
docker pull <镜像> # 下载镜像
docker images # 查看本地镜像
docker rmi <镜像> # 删除镜像
docker image prune -f # 清理无用镜像
# 容器操作
docker ps -a # 查看所有容器
docker run -d <镜像> # 后台运行容器
docker stop <容器> # 停止容器
docker rm <容器> # 删除容器
docker logs <容器> # 查看容器日志
# 清理
docker container prune # 删除已停止容器 (Docker 1.13+)
docker system prune -f # 清理所有未使用资源
```
---
*共 9 篇笔记*

View File

@@ -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/)

View File

@@ -1,2 +1,62 @@
1. **大量****镜像通过命令 docker image prune -f 清理。** # Docker 镜像清理
2. **通过命令 docker images | awk 'NR!=1{print $1":"$2}' | xargs docker rmi 可以批量清除无用的镜像,且不会影响使用中的镜像和基础镜像,满足笔者的需求。** > 来自 <[https://www.cnblogs.com/sqgzy/p/11864675.html](https://www.cnblogs.com/sqgzy/p/11864675.html)> > 来自 <[https://www.cnblogs.com/sqgzy/p/11864675.html](https://www.cnblogs.com/sqgzy/p/11864675.html)>
## 清理无用镜像
### 方法一prune 命令(推荐)
```bash
# 清理悬空镜像(无 tag 的镜像)
docker image prune -f
# 清理所有未使用镜像
docker image prune -a -f
```
### 方法二:批量清理
```bash
# 批量删除所有无用镜像,不会影响正在使用的镜像
docker images | awk 'NR!=1{print $1":"$2}' | xargs docker rmi
```
### 方法三system prune全面清理
```bash
# 清理所有未使用的容器、网络、镜像
docker system prune -f
# 清理所有未使用的镜像,不仅仅是悬空镜像
docker system prune -a -f
# 清理卷(注意:会删除数据)
docker system prune --volumes -f
```
## 清理前后对比
```bash
# 查看清理前
docker images -a
# 清理
docker system prune -f
# 查看清理后
docker images -a
```
## 定时清理(可选)
创建 cron 任务定期清理:
```bash
# 编辑 crontab
crontab -e
# 每周日凌晨 3 点清理
0 3 * * 0 /usr/bin/docker system prune -f
```
---
> 参考:[Docker 官方文档](https://docs.docker.com/config/pruning/)

View File

@@ -1,28 +1,74 @@
**方法一:** # 批量删除已停止的 Docker 容器
## #**==显示所有的容器,过滤出****Exited****状态的容器,取出这些容器的****ID**==
## sudo docker ps -a|grep Exited|awk '{print $1}'
## #**==查询所有的容器,过滤出****Exited****状态的容器,列出容器****ID**==,删除这些容器
## sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`
xx
**方法二:**
## #====删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)
## sudo docker rm $(sudo docker ps -a -q)
**方法三:** ## 方法一:使用 docker ps + awk最常用
## #**==根据容器的状态,删除****Exited**==状态的容器
## sudo docker rm $(sudo docker ps -qf status=exited)
**方法四:** ```bash
## #Docker 1.13**==版本以后,可以使用** **docker containers prune** ==命令,删除孤立的容器。 # 查看所有已停止的容器
## sudo docker container prune sudo docker ps -a | grep Exited
~~#~~~~删除所有镜像~~ # 获取已停止容器的 ID
~~sudo docker rmi $(docker images -q)~~ sudo docker ps -a | grep Exited | awk '{print $1}'
**附图:** # 批量删除已停止容器
## 02-====删除所有的容器,所有未运行的容器都被删除,正在运行的无法删除,达到删除不用容器的目的。 sudo docker rm $(docker ps -a | grep Exited | awk '{print $1}')
## 03-**==低于****1.13****版本的****Docker**==,可以根据容器的状态来进行删除 ```
## 04-**==查询所有的容器,过滤出状态为****Exited**==的容器
## 05-Docker 1.13**==版本以后,开始支持****prune**==命令,快速删除已退出的容器
> 来自 <[https://blog.csdn.net/jiangeeq/article/details/79499324](https://blog.csdn.net/jiangeeq/article/details/79499324)> ## 方法二:删除所有未运行的容器
```bash
# 删除所有未运行的容器
sudo docker rm $(sudo docker ps -a -q)
```
## 方法三根据容器状态删除Docker 1.13+
```bash
# 删除所有 Exited 状态的容器
sudo docker rm $(docker ps -qf status=exited)
```
参数说明:
- `-q`:只输出容器 ID
- `status=exited`:筛选已退出的容器
- `status=created`:筛选已创建但未启动的容器
- `status=running`:筛选正在运行的容器
## 方法四docker container pruneDocker 1.13+ 推荐)
```bash
# 删除所有已停止的容器(交互式确认)
docker container prune
# 直接删除,不确认(适合脚本)
docker container prune -f
```
## 方法五:删除所有容器(谨慎使用)
```bash
# 删除所有容器(包括运行中的)
docker rm -f $(docker ps -aq)
# 仅删除已停止的容器
docker container prune -f
```
## 完整流程示例
```bash
# 1. 查看当前容器状态
docker ps -a
# 2. 统计已停止容器数量
docker ps -a | grep Exited | wc -l
# 3. 批量删除已停止容器
docker rm $(docker ps -aq -f status=exited)
# 4. 确认删除结果
docker ps -a
```
---
> Docker 1.13+ 版本建议使用 `docker container prune` 命令,更简洁安全。

View File

@@ -1,4 +1,70 @@
## INSTALL AS A CONTAINER # 安装 Docker Compose
## Compose can also be run inside a container, from a small bash script wrapper. To install compose as a container run this command:
sudo curl -L --fail [https://github.com/docker/compose/releases/download/1.25.4/run.sh](https://github.com/docker/compose/releases/download/1.25.4/run.sh) -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose ## 方式一:作为容器运行(推荐)
> 来自 <[https://docs.docker.com/compose/install/#alternative-install-options](https://docs.docker.com/compose/install/#alternative-install-options)>
Docker Compose 可以作为容器运行,通过一个轻量级 bash 脚本调用。
```bash
# 下载并安装
sudo curl -L --fail \
https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m) \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
```
## 方式二pip 安装
```bash
pip install docker-compose
```
## 方式三standalone 二进制
```bash
# 下载指定版本
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d'"' -f4)
curl -L \
"https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
```
## 快速使用
```yaml
# docker-compose.yml 示例
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: postgres:13
environment:
POSTGRES_PASSWORD: secret
```
```bash
# 启动服务
docker-compose up -d
# 查看状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
```
---
> 参考:[Docker Compose 官方文档](https://docs.docker.com/compose/)