docker compose-语法

编写一个docker compose yaml文件:

具体compose yaml文件语法参考docker官网:

docker官网:https://www.docker.com

顶级元素配置一般学会前四个即可,configs-配置和secrets-秘钥用的少

顶级元素用法简单介绍:

首先在yaml文件定义这些顶级元素,一般学会前四个即可

name:名字。应用部署的名字

services:服务。要部署的服务,即要启动的一个个容器应用,不一定是就一个

networks:网络。启动这些应用要用的网络

volumes:卷。services中启动的一个个容器应用所需要的卷写在这个位置

具体写一个compose yaml文件,例子wordpress:

1.创建一个compose.yaml文件。可以创建一个叫compose.txt文件,然后改下后缀名即可

2.对照docker compose官网语法,编写composeyaml文件

使用文本工具打开compose.yaml文件,可以用文本文档,或者其他比如idea、vscode啥的都行

name:compose本次部署的应用名称

services:本次部署的应用需要启动2个容器应用,一个是docker容器mysql,另外一个是wordpress容器,所以写俩services,services内部写应用的名称(应用的名称和容器的名称可以不一致)+启动容器所需要的配置项(如在用命令启动容器时需要端口、环境变量、镜像等都写在配置项中),service服务即启动的应用名称或者service内部配置项中的container_name容器名称可以随意配置,可直接叫mysql、wordpress,也可叫mysqlhh,wordpresshh(个人听视频理解是这样)

service-mysql容器配置:

services内部image配置项写法:

services内部ports端口配置项写法:

一个容器应用要暴露的端口可能不止一个,所以ports是数组形式,一个-小短线代表一个端口映射,想再暴露其他的继续加小短线,跟nacos语法一样

service内部environment环境变量,-e配置项写法:

service内部volumes卷映射写法:

因为一个docker容器应用可能有很多卷映射或目录挂载,所以是数组写法,小短线形式

services内部restart开机自启写法:

service内部networks网络写法:

一个service即docker容器应用可以加入多个网络,所以是数组写法,小短线形式

service内部的container_name容器名称写法:

service-wordpress容器写法:

service内部的depends on写法:

wordpress启动需要依赖mysql先启动

使用compose yaml文件:

1.在linux云服务器上创建compose.yaml文件(也可以创建别的名称的yaml文件,因为实际会用-f参数指定文件,所以叫啥名都行)

在linux云服务器上vim compose.yaml即创建compose.yaml文件,输入i进入插入模式,将本地电脑编写的compose.yaml文件内容复制到该文件中,并最后输入:wq保存退出,ls查询是否创建成功compose.yaml文件

2.删除之前创建的容器、卷、网络

3.使用docker compose命令批量启动容器,并在浏览器访问启动的容器

可能没怎么听懂。

相关推荐
J2虾虾17 小时前
Docker启动超时,吓得我一身汗
运维·docker·容器
码农小卡拉18 小时前
Ubuntu22.04 安装 Docker 及 Docker Compose v2 详细教程
ubuntu·docker·容器
一生只为赢18 小时前
通俗易懂:ARM指令的寻址方式(三)
运维·arm开发·数据结构·嵌入式实时数据库
运维行者_18 小时前
2026 技术升级,OpManager 新增 AI 网络拓扑与带宽预测功能
运维·网络·数据库·人工智能·安全·web安全·自动化
液态不合群18 小时前
Nginx多服务静态资源路径冲突解决方案
运维·nginx
Getgit19 小时前
Linux 下查看 DNS 配置信息的常用命令详解
linux·运维·服务器·面试·maven
数通工程师19 小时前
企业级硬件防火墙基础配置实战:从初始化到规则上线全流程
运维·网络·网络协议·tcp/ip·华为
EasyNVR20 小时前
docker版EasyNVR如何使用同步插件教程(包含网盘挂载,路径映射等)
docker·容器·音视频
岁岁种桃花儿20 小时前
详解kubectl get replicaset命令及与kubectl get pods的核心区别
运维·nginx·容器·kubernetes·k8s
捷智算云服务20 小时前
告别运维割裂!捷智算GPU维修中心重新定义“全栈式”维修新标准
运维·服务器·性能优化