Docker Compose 配置文件中文件结构 volumes挂载目录
Docker 应用已经成为我们日常的生产力工具。Docker Compose 方式部署应用也成为我们在 NAS 中部署 Docker 应用的主要那个方式之一。本文简单描述 docker-compose.yml 配置文件中文件结构、volumes挂载目录,不涉及专业的内容。
什么是 Docker Compose
Docker Compose 是一个用于定义和管理多容器的 Docker 工具,通过一个 docker-compose.yml
文件,您可以配置应用程序需要的所有服务并轻松管理它们。
Docker Compose 项目地址:https://github.com/docker/compose/
Docker Compose 文件结构
Docker Compose 文件通常命名为 docker-compose.yaml
,它使用 YAML 语法来描述服务、网络和存储空间。一个基本的 Compose 文件结构如下:
version: '3' services: web: image: nginx ports: - "90:80" volumes: - ./html:/usr/share/nginx/html db: image: mysql environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: mydatabase MYSQL_USER: user MYSQL_PASSWORD: password volumes: - ./data:/var/lib/mysql
- version:定义 Docker Compose 文件的版本。
- services:定义应用中的各个服务。在这个例子中,定义了
web
和db
两个服务。 - image:指定服务使用的 Docker 镜像,例如
nginx
和mysql
。 - ports:定义主机与容器之间的端口映射,
90:80
意思是着将NAS主机的 90 端口映射到容器的 80 端口,容器可以通过NAS_IP+90端口访问NAS主机。 - volumes:定义存储空间目录与容器目录的映射关系,用于数据持久化。
- environment:用于为容器中的服务设置环境变量,例如设置数据库密码、API 密钥和其他配置选项。
环境变量详解
在这个例子中:
- MYSQL_ROOT_PASSWORD:设置 MySQL 数据库的根密码为
example
。 - MYSQL_DATABASE:创建一个名为
mydatabase
的数据库。 - MYSQL_USER:创建一个名为
user
的数据库用户。 - MYSQL_PASSWORD:为上述用户设置密码为
password
。
这些环境变量会在容器启动时传递给 MySQL 服务,并用于初始化数据库。
volumes 挂载路径
在使用 Docker 配置 docker-compose.yml
文件时,需要将容器内的数据目录挂载到 NAS 的本地文件夹以实现数据持久化。然而,有时我们可能不清楚如何正确表示本地文件夹路径,尤其是针对 NAS 的存储空间。
在 Docker Compose 文件中,volumes 的挂载路径通常按照以下格式表示:<宿主机目录>:<容器目录>
volumes: - ./html:/usr/share/nginx/html

示例中,./html:/usr/share/nginx/html
是一种存储空间挂载配置。
./html
:其中./
代表当前 Docker Compose 文件所在的目录,也就是我们选择的路径。./html
指的是 Docker Compose 文件所在目录下的 html 子目录。/usr/share/nginx/html
:容器路径。将本地的html
文件夹挂载到容器内的/usr/share/nginx/html
文件夹。
当你在主机的 ./html
目录下添加、修改或删除文件时,这些更改会立即反映在容器的 /usr/share/nginx/html
目录中,容器内的更改也会同步到主机的 ./html 目录
飞牛OS 通过 Docker Compose 安装Lucky
简单实例Lucky官方Docker Compose 安装说明:

在飞牛OS中打开 Docker -> Compose -> 新增项目:

- 项目名称:lucky
- 路径:本地文件夹
- 来源:创建docker-compose.yml
- 勾选创建项目后立即启动
复制以下Docker Compose配置:
services: lucky: image: gdy666/lucky:latest #镜像名 latest 为最新版本。 container_name: lucky volumes: - ./config:/goodluck # 配置文件存放路径 network_mode: host # 网络模式 restart: always #重启策略 当容器停止或崩溃时自动重启
参数说明
- image:指定 Docker 镜像,latest 为最新版本。
- restart:定义容器重启策略,always当容器停止或崩溃时自动重启。
- volumes:映射 NAS 本地文件夹到容器内的路径
./
:文件存放路径:/vol1/1000/Docker/lucky
./config
:配置文件存放路径/vol1/1000/Docker/lucky/config
- network_mode:设置容器的网络模式为 host。

加入对话