mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-24 02:35:27 +00:00
Add blank lines before headers
This commit is contained in:
@@ -147,6 +147,7 @@ $ docker run -d \
|
||||
#### 只读挂载
|
||||
|
||||
```bash
|
||||
|
||||
## --mount 方式
|
||||
|
||||
$ docker run -d \
|
||||
@@ -167,6 +168,7 @@ $ docker run -d \
|
||||
#### 场景一:数据库持久化
|
||||
|
||||
```bash
|
||||
|
||||
## 创建数据卷
|
||||
|
||||
$ docker volume create postgres_data
|
||||
@@ -195,6 +197,7 @@ $ docker run -d \
|
||||
#### 场景二:多容器共享数据
|
||||
|
||||
```bash
|
||||
|
||||
## 创建共享数据卷
|
||||
|
||||
$ docker volume create shared-data
|
||||
@@ -215,6 +218,7 @@ $ docker run --rm \
|
||||
#### 场景三:配置文件持久化
|
||||
|
||||
```bash
|
||||
|
||||
## 将 nginx 配置存储在数据卷中
|
||||
|
||||
$ docker run -d \
|
||||
@@ -231,6 +235,7 @@ $ docker run -d \
|
||||
#### 删除数据卷
|
||||
|
||||
```bash
|
||||
|
||||
## 删除指定数据卷
|
||||
|
||||
$ docker volume rm my-vol
|
||||
@@ -243,6 +248,7 @@ $ docker rm -v container_name
|
||||
#### 清理未使用的数据卷
|
||||
|
||||
```bash
|
||||
|
||||
## 查看未被任何容器使用的数据卷
|
||||
|
||||
$ docker volume ls -f dangling=true
|
||||
@@ -265,6 +271,7 @@ $ docker volume prune -f
|
||||
#### 备份数据卷
|
||||
|
||||
```bash
|
||||
|
||||
## 使用临时容器挂载数据卷,打包备份
|
||||
|
||||
$ docker run --rm \
|
||||
@@ -283,6 +290,7 @@ $ docker run --rm \
|
||||
#### 恢复数据卷
|
||||
|
||||
```bash
|
||||
|
||||
## 创建新数据卷
|
||||
|
||||
$ docker volume create my-vol-restored
|
||||
@@ -299,6 +307,7 @@ $ docker run --rm \
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
## backup-volume.sh
|
||||
|
||||
VOLUME_NAME=$1
|
||||
@@ -328,6 +337,7 @@ Docker 有两种主要的数据持久化方式:
|
||||
| **备份** | 需要工具 | 直接访问文件 |
|
||||
|
||||
```bash
|
||||
|
||||
## 数据卷
|
||||
|
||||
$ docker run -v mydata:/app/data nginx
|
||||
@@ -352,6 +362,7 @@ $ docker inspect container_name --format '{{json .Mounts}}' | jq
|
||||
#### Q:数据卷的数据在哪里?
|
||||
|
||||
```bash
|
||||
|
||||
## 查看数据卷详情
|
||||
|
||||
$ docker volume inspect my-vol
|
||||
|
||||
@@ -86,6 +86,7 @@ $ docker run -d \
|
||||
#### 场景一:开发环境代码同步
|
||||
|
||||
```bash
|
||||
|
||||
## 将本地代码目录挂载到容器
|
||||
|
||||
$ docker run -d \
|
||||
@@ -96,6 +97,7 @@ $ docker run -d \
|
||||
## 修改本地文件,容器内立即生效(热更新)
|
||||
|
||||
$ echo "Hello" > src/index.html
|
||||
|
||||
## 浏览器刷新即可看到变化
|
||||
|
||||
...
|
||||
@@ -104,6 +106,7 @@ $ echo "Hello" > src/index.html
|
||||
#### 场景二:配置文件挂载
|
||||
|
||||
```bash
|
||||
|
||||
## 挂载自定义 nginx 配置
|
||||
|
||||
$ docker run -d \
|
||||
@@ -114,6 +117,7 @@ $ docker run -d \
|
||||
#### 场景三:日志收集
|
||||
|
||||
```bash
|
||||
|
||||
## 将容器日志输出到宿主机目录
|
||||
|
||||
$ docker run -d \
|
||||
@@ -124,6 +128,7 @@ $ docker run -d \
|
||||
#### 场景四:共享 SSH 密钥
|
||||
|
||||
```bash
|
||||
|
||||
## 挂载 SSH 密钥(只读)
|
||||
|
||||
$ docker run --rm -it \
|
||||
@@ -138,6 +143,7 @@ $ docker run --rm -it \
|
||||
防止容器修改宿主机文件:
|
||||
|
||||
```bash
|
||||
|
||||
## --mount 语法
|
||||
|
||||
$ docker run -d \
|
||||
@@ -163,6 +169,7 @@ touch: /app/config/new.txt: Read-only file system
|
||||
### 8.2.6 挂载单个文件
|
||||
|
||||
```bash
|
||||
|
||||
## 挂载 bash 历史记录
|
||||
|
||||
$ docker run --rm -it \
|
||||
@@ -228,6 +235,7 @@ bind source path does not exist: /not/exist
|
||||
容器内用户可能无权访问挂载的文件:
|
||||
|
||||
```bash
|
||||
|
||||
## 方法1:确保宿主机文件权限允许容器用户访问
|
||||
|
||||
$ chmod -R 755 /path/to/data
|
||||
@@ -246,6 +254,7 @@ $ docker run -u $(id -u):$(id -g) ...
|
||||
在 Docker Desktop 上,Bind Mount 性能较差 (需要跨文件系统同步):
|
||||
|
||||
```bash
|
||||
|
||||
## 使用 :cached 或 :delegated 提高性能(macOS)
|
||||
|
||||
$ docker run -v /host/path:/container/path:cached myapp
|
||||
@@ -264,6 +273,7 @@ $ docker run -v /host/path:/container/path:cached myapp
|
||||
#### 1. 开发环境使用 Bind Mount
|
||||
|
||||
```bash
|
||||
|
||||
## 代码热更新
|
||||
|
||||
$ docker run -v $(pwd):/app -p 3000:3000 node npm run dev
|
||||
@@ -272,6 +282,7 @@ $ docker run -v $(pwd):/app -p 3000:3000 node npm run dev
|
||||
#### 2. 生产环境使用 Volume
|
||||
|
||||
```bash
|
||||
|
||||
## 数据持久化
|
||||
|
||||
$ docker run -v mysql_data:/var/lib/mysql mysql
|
||||
@@ -286,6 +297,7 @@ $ docker run -v /config/nginx.conf:/etc/nginx/nginx.conf:ro nginx
|
||||
#### 4. 注意路径安全
|
||||
|
||||
```bash
|
||||
|
||||
## ❌ 危险:挂载根目录或敏感目录
|
||||
|
||||
$ docker run -v /:/host ...
|
||||
|
||||
Reference in New Issue
Block a user