mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 04:14:38 +00:00
style: apply global formatting fixes (struct, spacing, zhlint)
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
## 7.8 VOLUME 定义匿名卷
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 基本语法
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
VOLUME ["/路径1", "/路径2"]
|
||||
VOLUME /路径
|
||||
@@ -43,8 +47,12 @@ flowchart LR
|
||||
|
||||
### 基本用法
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 定义单个卷
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
FROM mysql:8.0
|
||||
VOLUME /var/lib/mysql
|
||||
@@ -52,6 +60,8 @@ VOLUME /var/lib/mysql
|
||||
|
||||
#### 定义多个卷
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
FROM myapp
|
||||
VOLUME ["/data", "/logs", "/config"]
|
||||
@@ -61,7 +71,9 @@ VOLUME ["/data", "/logs", "/config"]
|
||||
|
||||
### VOLUME 的行为
|
||||
|
||||
#### 1. 自动创建匿名卷
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 1。自动创建匿名卷
|
||||
|
||||
如果运行时未指定挂载,Docker 会自动创建匿名卷:
|
||||
|
||||
@@ -72,7 +84,7 @@ DRIVER VOLUME NAME
|
||||
local a1b2c3d4e5f6... # 自动创建的匿名卷
|
||||
```
|
||||
|
||||
#### 2. 可被命名卷覆盖
|
||||
#### 2。可被命名卷覆盖
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -82,7 +94,7 @@ local a1b2c3d4e5f6... # 自动创建的匿名卷
|
||||
$ docker run -v mysql_data:/var/lib/mysql mysql:8.0
|
||||
```
|
||||
|
||||
#### 3. 可被 Bind Mount 覆盖
|
||||
#### 3。可被 Bind Mount 覆盖
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -109,8 +121,14 @@ RUN echo "hello" > /data/test.txt
|
||||
|
||||
**原因**:VOLUME 指令之后,Docker 将该目录视为外部挂载点,不再记录对它的修改。
|
||||
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### 正确做法
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
FROM ubuntu
|
||||
|
||||
@@ -127,8 +145,12 @@ VOLUME /data
|
||||
|
||||
### 常见使用场景
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 数据库持久化
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
FROM postgres:15
|
||||
VOLUME /var/lib/postgresql/data
|
||||
@@ -136,6 +158,8 @@ VOLUME /var/lib/postgresql/data
|
||||
|
||||
#### 日志目录
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
FROM nginx
|
||||
VOLUME /var/log/nginx
|
||||
@@ -143,6 +167,8 @@ VOLUME /var/log/nginx
|
||||
|
||||
#### 上传文件目录
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
FROM myapp
|
||||
VOLUME /app/uploads
|
||||
@@ -182,7 +208,7 @@ $ docker inspect mycontainer --format '{{json .Mounts}}' | jq
|
||||
|
||||
### 在 Compose 中
|
||||
|
||||
在 Compose 中 配置如下:
|
||||
在 Compose 中配置如下:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
@@ -204,6 +230,12 @@ volumes:
|
||||
|
||||
### 安全注意事项
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### 匿名卷可能导致数据丢失
|
||||
|
||||
运行以下命令:
|
||||
@@ -227,7 +259,11 @@ $ docker run -v mysql_data:/var/lib/mysql mysql:8.0
|
||||
|
||||
### 最佳实践
|
||||
|
||||
#### 1. 定义必须持久化的路径
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 1。定义必须持久化的路径
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## 数据库必须使用卷
|
||||
@@ -236,7 +272,9 @@ FROM postgres:15
|
||||
VOLUME /var/lib/postgresql/data
|
||||
```
|
||||
|
||||
#### 2. 不要在 VOLUME 后修改目录
|
||||
#### 2。不要在 VOLUME 后修改目录
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## ❌ 避免
|
||||
@@ -250,7 +288,9 @@ RUN mkdir -p /app/data && cp init-data.json /app/data/
|
||||
VOLUME /app/data
|
||||
```
|
||||
|
||||
#### 3. 文档中说明 VOLUME 用途
|
||||
#### 3。文档中说明 VOLUME 用途
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```docker
|
||||
## 持久化用户上传的文件
|
||||
|
||||
Reference in New Issue
Block a user