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。
加入对话