docker-compose.yml 使用说明
docker-compose.yml 结构 docker-compose.yml文件分为三个主要部分:services、networks、volumes.。
services主要用来定义各个容器。
networks定义需要使用到的network.。
volumes定义services使用到的volume 。docker-compose配置文件样板:
可以不用docker-compose.yml命名,可以指定别的名字例如 service.yml
version: "3"
service:
order-service:
image: 192.168.0.101:10080/eshop/eshop-order:latest
deploy:
endpoint_mode: vip
replicas: 3
restart_policy:
condition: on-failure
resources:
limits:
cpus: "0.2"
memory: 2G
depends_on:
- nginx-service
- pay-service pay-service:
image: 192.168.0.101:10080/eshop/eshop-pay:latest
deploy:
endpoint_mode: vip
replicas: 3
restart_policy:
condition: on-failure
resources:
limits:
cpus: "0.2"
memory: 2G
depends_on:
- nginx-service nginx-service
image: 192.168.0.101:10080/base/nginx
ports:
- "8002:80" networks:
default:
external:
name: my-overlay-net然后用docker stack执行service.yml
# test表示stack名
docker stack deploy -c service.yml test每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中再次设置。
常用命令介绍 build
使用当前目录下的Dockerfile进行构建。
version: '3'
services:
web:
build: ./build也可以指定文件路径,Dockerfile的名字.
version: '3'
services:
web:
build:
context: ./
dockerfile: mydockerfileimage
指定运行容器使用的镜像。下面的格式都支持。
image: redis
image: ubuntu:14.04
image: yyee/eshop.order:latest
image: www.myharbor.com:10080/eshop/eshop.order:latest
image: eshop:latest如果本地不存在指定的镜像,则会从repository pull下来。
version: '3'
services:
order-service
build: ./
image: www.myharbor.com:10080/eshop/order-service:v1.0.2container_name
默认运行出来的容器名。
version: '3'
services:
order-service
build: ./
image: www.myharbor.com:10080/eshop/order-service:v1.0.2
container_name: my-ordercommand
覆盖容器启动后默认执行的命令(Dockerfile定义的CMD)。当Dockerfile定义了entrypoint的时候,docker-comose.yml定义的command会被覆盖。
version: '3'
services:
web:
build: ./
command: ["dotnet","eshop.order.dll"]entrypoint
可以覆盖Dockerfile中定义的entrypoint命令。
version: '3'
services:
web:
build: ./
entrypoint: python app.pylinks
链接到其它服务中的容器。使用服务名称(同时作为别名)或服务名称:服务别名 (SERVICE:ALIAS) 格式都可以。
version: '3'
services:
order-service
links:
- user-service
- pay-service
- redisexternal_links
链接到 docker-compose.yml 外部的容器,参数格式跟 links 类似。
version: '3'
services:
order-service
external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresqlport
暴露端口信息。
version: '3'
services:
api-gateway-ocelot
image: api-gateway-ocelot-service:latest
links:
- user-service
- eshop-service
port: 8080:8080expose
指定内部端口,但不映射到宿主机,只被连接的服务访问。
version: '3'
services:
api-gateway-ocelot
image: api-gateway-ocelot-service:latest
links:
- user-service
- eshop-service
expose: 8080environment
enviroment定义的变量会覆盖.env文件中定义的重名环境变量。
environment:
RACK_ENV: development
SHOW: 'true'
BASEAPI_URL: 192.168.0.101 # 或者 environment:
- RACK_ENV=development
- SHOW=true
- BASEAPI_URL=192.168.0.101ports
将容器的端口80映射到宿主机的端口8080
version: '3'
services:
api-gateway-ocelot
image: api-gateway-ocelot-service:latest
links:
- user-service
- eshop-service
ports: 8080 # 或者
version: '3'
services:
api-gateway-ocelot
image: api-gateway-ocelot-service:latest
links:
- user-service
- eshop-service
ports:
- 8080:80
- 127.0.0.1:8080:80volumes
设置容器的数据卷路径。
version: '3'
services:
order-service
build: ./
image: www.myharbor.com:10080/eshop/order-service:v1.0.2
ontainer_name: my-order
values:
- data_path: /var/data/order-data
- log-path:/ var/data/order-lognetworks
容器使用的网络设置。
ersion: '3'
services:
order-service
network: my-net
docker-compose.yml 使用说明的更多相关文章
- Docker Compose YML文件配置
Docker Compose YML 默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来 ...
- docker compose yml 文件常用字段简介
常用参数: version # 指定 compose 文件的版本 services # 定义所有的 service 信息, services 下面的第一级别的 key 既是一个 service 的名称 ...
- Docker Compose yml
Wordpress + Mysql version: '3' services: db: image: mysql:latest volumes: - db_data:/var/lib/mysql e ...
- Docker Compose 创建yml 简单试例
Docker Compose 创建yml 简单试例 Docker Compose 文件使用格式版本需要与Docker版本对应可在官网内查找 查找地址:https://docs.docker.com/c ...
- docker内程序如何读取dockerfile和compose.yml中设置的环境变量
docker内程序如何读取dockerfile和compose.yml中设置的环境变量 背景 compose文件中配置了服务A和服务B,其中B服务调用了A服务的接口,那么B的实现代码中该如何调用A的服 ...
- 25.docker compose 简介 和 docker-compose.yml 参数介绍
1. docker compose概念 文档 https://docs.docker.com/compose/compose-file/compose-versioning 一个基于 docker ...
- Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose部署Nexus3时的docker-compose,yml代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose容器编排
Compose是Docker官方的开源项目,可以实现对Docker容器集群的快速编排.Compose 中有两个重要的概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实 ...
- docker——三剑客之Docker Compose
编排(Orchestration)功能是复杂系统实现灵活可操作性的关键.特别是在Docker应用场景中,编排意味着用户可以灵活的对各种容器资源实现定义和管理. 作为Docker官方编排工具,Compo ...
随机推荐
- 数据库周刊60丨3月国产数据库排行榜出炉;日本银行数据迁移失败致使业务宕机;阿里云RDS PG13发布;亚健康Oracle数据库故障定位;Redis最佳实践;MySQL查询优化……
热门资讯 1.2021年3月国产数据库排行榜:雏凤声清阿里三连 绝代双骄华为合璧 [摘要]2021年3月国产数据库流行度排行榜已出炉,在本月排行的前十名中,TiDB 仍然以领先第二名135分 的优势稳 ...
- ArkTS 和仓颉的特性对比与案例
ArkTS和仓颉是两种不同的编程语言,它们各自具有独特的特性和设计目的. ArkTS特性 ArkTS是一种基于TypeScript的编程语言,专门为鸿蒙应用开发而设计.它保留了TypeScript的大 ...
- yarn serve 开启项目服务失败 assets emit different content to the same filename
error: answer: 删除public的文件,重新 yarn serve :
- 47.vue-router的钩子函数
钩子函数就是路由导航守卫 : 有 7 个守卫,分为 3 类 : 全局守卫:在全部的组件生效: beforeEach 全局前置守卫 afterEach 全局后置守卫 解析守卫 组件守卫:在某个组件生效 ...
- work中模板、主题、样式集、样式的作用和使用方法
[收藏]Word样式.样式集.主题.模版怎么区分?进来围观学习了~ 我们先来按照层次关系从小到大排序:样式<样式集<主题<模板 接下来,我们按照层次关系从小到大开始了解它们之间的的区 ...
- docker 靶场 笔记
docker 靶场 笔记 搜索 镜像容器 sudo docker search dvwa 查看所有镜像容器 docker ps -a 下载 指定的 镜像 并在后台启动 docker run -itd ...
- spring cloud openfeign 源码
一.读取注解信息 入口 1 import org.springframework.boot.SpringApplication; 2 import org.springframework.boot.a ...
- 在mac上配置nginx 并将前端的打包文件运行
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- C++内存模型实践探索
前言 C++对象模型是个常见.且复杂的话题,本文基于Itanium C++ ABI通过程序实践介绍了几种 简单C++继承 场景下对象模型,尤其是存在虚函数的场景,并通过图的方式直观表达内存布局.本文展 ...
- 网络波动下的救星:ToDesk云电脑性能测试,以赛博朋克2077、巫师3为例
随着网络技术的不断发展,云电脑作为一种新兴的云端计算机逐渐进入大众视野.对于游戏玩家而言,云电脑不仅解决了高配置电脑价格昂贵的问题,还让玩家在任何网络环境下随时随地享受高性能的游戏体验. 特别是在网络 ...