Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过使用一个 YAML 文件,您可以配置应用程序需要的所有服务。然后,只需一个命令,就可以创建并启动所有服务。
TrueNAS SCALE 24.10 开始使用docker和docker compose部署应用,所以写这一篇简单的介绍一下如何编写docker compose文件(即TrueNAS SCALE 的自定义应用)
docker-compose.yaml 文件docker-compose.yaml 文件使用 YAML 格式定义服务、网络和卷。以下是文件的基本结构:
services:
service_name:
image: image_name:tag
build: .
ports:
- "host_port:container_port"
volumes:
- host_path:container_path
environment:
- ENV_VAR=value
depends_on:
- other_service有过docker-compose经验的同学可能已经发现了不对劲的地方,为什么第一行少了version:'3',因为新版已经去掉了这个版本信息,直接写service就行
我们以nginx举例
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- /mnt/SSD/apps/nginx:/usr/share/nginx/html解释:
web 的服务。/mnt/SSD/app/nginx 目录挂载到容器内的/usr/share/nginx/html注意:主机端口不要与其他应用冲突,/mnt/SSD/app/nginx 这个路径需要提前创建,你可以创建数据集或者直接命令行里创建目录,数据集的路径按下图示例:
在图片显示的路径前面要加上/mnt,也就是/mnt/SSD/apps/nginx 这样
点击保存,系统就会开始拉取镜像进行安装
然后我们可以尝试在映射的目录里写入一些东西
echo "Hello world" > /mnt/SSD/apps/nginx/index.html然后访问http://NAS IP:8080/