Update from Sync Service
This commit is contained in:
@@ -1,88 +1,114 @@
|
||||
1.镜像下载
|
||||
下载 `MongoDB` 镜像命令:
|
||||
# Docker 部署 MongoDB
|
||||
|
||||
```
|
||||
```
|
||||
docker pull mongo
|
||||
```
|
||||
```
|
||||
执行 `docker images` 查看镜像,下载成功,如下图:
|
||||
## 1. 下载 MongoDB 镜像
|
||||
|
||||
2.启动 `MongoDB`
|
||||
启动 `MongoDB` 命令:
|
||||
```bash
|
||||
docker pull mongo:latest
|
||||
|
||||
```
|
||||
```
|
||||
docker run -p 27017:27017 -v $PWD/db:/data/db -d mongo:latest
|
||||
# 查看已下载的镜像
|
||||
docker images mongo
|
||||
```
|
||||
|
||||
```
|
||||
## 命令说明:
|
||||
## 2. 启动 MongoDB 容器
|
||||
|
||||
```
|
||||
```
|
||||
 -p 27017:27017 :
|
||||
```bash
|
||||
docker run -d \
|
||||
--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
|
||||
```
|
||||
|
||||
```
|
||||
## 端口映射到主机的
|
||||
### 带认证启动
|
||||
|
||||
```
|
||||
```
|
||||
27017
|
||||
```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. 连接测试
|
||||
|
||||
```
|
||||
```
|
||||
 -v $PWD/db:/data/db :
|
||||
```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
|
||||
```
|
||||
|
||||
```
|
||||
## 将主机中当前目录下的**`db`**挂载到容器的
|
||||
看到以下提示说明部署成功:
|
||||
|
||||
```
|
||||
```
|
||||
/data/db
|
||||
It looks like you are trying to access MongoDB over HTTP on the native driver port.
|
||||
```
|
||||
|
||||
```
|
||||
**,作为**`mongo`**数据存储目录**``
|
||||
启动成功,如下图:
|
||||
## 5. 常用管理命令
|
||||
|
||||
3.测试连接 `MongoDB`
|
||||
连接 `MongoDB` 命令:
|
||||
```bash
|
||||
# 查看容器状态
|
||||
docker ps | grep mongodb
|
||||
|
||||
```
|
||||
```
|
||||
docker run -it mongo:latest mongo --host 172.17.0.1
|
||||
# 查看日志
|
||||
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
|
||||
```
|
||||
|
||||
```
|
||||
## 使用**`mongo`**镜像执行**`mongo` **命令连接到刚启动的容器**`,`**主机**`IP`**为
|
||||
---
|
||||
|
||||
```
|
||||
```
|
||||
172.17.0.1
|
||||
```
|
||||
|
||||
```
|
||||
提示信息 `It looks like you are trying to access MongoDB over HTTP on the native driver port.` ,nice,部署 `MongoD` 成功!
|
||||
> 参考:[MongoDB Docker 官方文档](https://hub.docker.com/_/mongo)
|
||||
|
||||
@@ -1,28 +1,62 @@
|
||||
---
|
||||
title: Docker 索引
|
||||
tags:
|
||||
- Docker
|
||||
- 容器
|
||||
- 索引
|
||||
created: 2026-04-21
|
||||
updated: 2026-04-21
|
||||
---
|
||||
|
||||
# Docker
|
||||
# Docker 知识索引
|
||||
|
||||
> 自动生成的索引文件
|
||||
> 容器技术学习笔记汇总
|
||||
|
||||
## 文件列表
|
||||
## 📚 目录
|
||||
|
||||
| 文件名 | 大小 | 说明 |
|
||||
|--------|------|------|
|
||||
| [[Docker 部署 MongoDB]] | 1KB | |
|
||||
| [[Docker安装redis]] | 1KB | |
|
||||
| [[Rancher_Rancher的状态存储在什么地方?]] | 619B | |
|
||||
| [[Rancher_如何在同一个主机上运行Rancher-Rancher和Rancher-Rancher-Agent]] | 957B | |
|
||||
| [[centos7设置docker开机自启动,并设置容器自动重启]] | 837B | |
|
||||
| [[docker rm & docker rmi & docker prune 的差异]] | 196B | |
|
||||
| [[docker rm & docker rmi & docker prune 的差异]] | 196B | |
|
||||
| [[docker镜像清理]] | 485B | |
|
||||
| [[如何批量删除Docker中已经停止的容器]] | 1KB | |
|
||||
| [[安装docker-compose]] | 545B | |
|
||||
### 基础入门
|
||||
| 笔记 | 说明 |
|
||||
|------|------|
|
||||
| [[Docker安装redis]] | Redis 容器化部署 |
|
||||
| [[Docker 部署 MongoDB]] | MongoDB 容器化部署 |
|
||||
| [[安装docker-compose]] | Docker Compose 安装 |
|
||||
|
||||
### 运维管理
|
||||
| 笔记 | 说明 |
|
||||
|------|------|
|
||||
| [[centos7设置docker开机自启动]] | Docker 及容器自启动配置 |
|
||||
| [[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 篇笔记*
|
||||
|
||||
71
Docker/centos7设置docker开机自启动.md
Executable file
71
Docker/centos7设置docker开机自启动.md
Executable 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/)
|
||||
@@ -1,2 +1,62 @@
|
||||
1. **大量****镜像通过命令 docker image prune -f 清理。**
|
||||
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)>
|
||||
# Docker 镜像清理
|
||||
|
||||
## 清理无用镜像
|
||||
|
||||
### 方法一: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/)
|
||||
|
||||
@@ -1,28 +1,74 @@
|
||||
**方法一:**
|
||||
## #**==显示所有的容器,过滤出****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 容器
|
||||
|
||||
**方法三:**
|
||||
## #**==根据容器的状态,删除****Exited**==状态的容器
|
||||
## sudo docker rm $(sudo docker ps -qf status=exited)
|
||||
## 方法一:使用 docker ps + awk(最常用)
|
||||
|
||||
**方法四:**
|
||||
## #Docker 1.13**==版本以后,可以使用** **docker containers prune** ==命令,删除孤立的容器。
|
||||
## sudo docker container prune
|
||||
```bash
|
||||
# 查看所有已停止的容器
|
||||
sudo docker ps -a | grep Exited
|
||||
|
||||
~~#~~~~删除所有镜像~~
|
||||
~~sudo docker rmi $(docker images -q)~~
|
||||
# 获取已停止容器的 ID
|
||||
sudo docker ps -a | grep Exited | awk '{print $1}'
|
||||
|
||||
**附图:**
|
||||
## 02-====删除所有的容器,所有未运行的容器都被删除,正在运行的无法删除,达到删除不用容器的目的。
|
||||
## 03-**==低于****1.13****版本的****Docker**==,可以根据容器的状态来进行删除
|
||||
## 04-**==查询所有的容器,过滤出状态为****Exited**==的容器
|
||||
## 05-Docker 1.13**==版本以后,开始支持****prune**==命令,快速删除已退出的容器
|
||||
# 批量删除已停止容器
|
||||
sudo docker rm $(docker ps -a | grep Exited | awk '{print $1}')
|
||||
```
|
||||
|
||||
> 来自 <[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 prune(Docker 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` 命令,更简洁安全。
|
||||
|
||||
@@ -1,4 +1,70 @@
|
||||
## INSTALL AS A CONTAINER
|
||||
## 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
|
||||
|
||||
## 方式一:作为容器运行(推荐)
|
||||
|
||||
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/)
|
||||
|
||||
Reference in New Issue
Block a user