Docker Stack 笔记
Docker Compose (Docker Stack)
image: Specify the image to start the container from. Can either be a repository/tag or a partial image ID.
If the image does not exist, Compose attempts to pull it, unless you have also specified build, in which case it builds it using the specified options and tags it with the specified tag.
deploy: (resource limits) This only takes effect when deploying to a swarm with docker stack deploy, and is ignored by docker-compose up and docker-compose run.
depends_on: Express dependency between services. Service dependencies cause the following behaviors:
networks: Networks to join, referencing entries under the top-level networks key.
ports: (Port mapping) Either specify both ports (HOST:CONTAINER), or just the container port (an ephemeral host port is chosen).
environment: Environment variables with only a key are resolved to their values on the machine Compose is running on, which can be helpful for secret or host-specific values.
environment:
- SHOW=true
- SESSION_SECRET
volumes: bind mount, named volume
When you use a bind mount, a file or directory on the host machine is mounted into a container. The file or directory is referenced by its absolute path on the host machine. By contrast, when you use a volume, a new directory is created within Docker's storage directory on the host machine, and Docker manages that directory's contents. Volumes have several advantages over bind mounts.
The source of the mount. For bind mounts, this is the path to the file or directory on the Docker daemon host. May be specified as source or src.
The destination takes as its value the path where the file or directory is mounted in the container. May be specified as destination, dst, or target.
logging: The default driver json-file, has options to limit the amount of logs stored. To do this, use a key-value pair for maximum storage size and maximum number of files:
options:
max-size: "200k"
max-file: "10"
The example shown above would store log files until they reach a max-size of 200kB, and then rotate them. As logs grow beyond the max limits, older log files are removed to allow storage of new logs.
docker-stack.yml
# docker stack deploy -c docker-stack.yml version: "3.5"
x-logging:
&graylog-logging
driver: gelf
options:
gelf-address: "udp://graylog-svc:12201" x-default-logging:
&default-logging
driver: json-file x-deploy:
&default-limits
resources:
limits:
memory: 256M x-environment:
&rcs-config-server-url
RCS_CONFIG_SERVER_URL=http://config-server:19050/config services:
redis:
image: "redis:latest"
# logging: *graylog-logging
deploy: *default-limits
networks:
- outside
ports:
- "6379:6379"
volumes:
- /u/docker/redis/config:/usr/local/etc/redis # service name: prime_config-server
config-server:
image: "dck0.prime/prime-rcs-config-server:${RCS_CONFIG_VERSION:-0.0.1-SNAPSHOT}"
# logging: *graylog-logging
deploy: *default-limits
networks:
- outside
ports:
- "19050:19050"
environment:
- RCS_CONFIG_SERVER_LOCATION=file:/assert/config
- RCS_KEYSTORE_LOCATION=file:/assert/server.jks
- RCS_KEYSTORE_ALIAS=sz-qa-env
env_file: "$HOME/.ssh/rcs_keystore.env"
volumes:
- ./server.jks:/assert/server.jks:/ro
- ~/workspace/devops/prime-config/qa/qa:/assert/config/:/ro pmc-backend:
image: "dck0.prime/prime-management-console:${PMC_BACKEND_VERSION:-0.0.1-SNAPSHOT}"
# logging: *graylog-logging
deploy: *default-limits
depends_on:
- config-server
- redis
networks:
- outside
ports:
- "8283:8283"
environment:
- PMC_CONFIG_CLIENT_URL=http://config-server:19050/config
- PMC_CONFIG_CLIENT_PROFILE=qa
- LOGBACK_LOGSTASH_URL=10.102.129.23:5044
- APM_AGENT_ACTIVE=true
volumes:
- /u/docker/nginx/html/logs/pmc:/prime/logs/pmc
- /u/docker/nginx/html/upload:/opt/pmc/upload mission-mgr:
image: "dck0.prime/prime-rcs-mission:${RCS_MISSION_VERSION:-0.0.1-SNAPSHOT}"
# logging: *graylog-logging
deploy: *default-limits
depends_on:
- config-server
networks:
- outside
ports:
- "19030:19030"
- "16002:16002"
environment:
- *rcs-config-server-url
- RCS_CONFIG_CLIENT_PROFILE=qa
- LOGBACK_LOGSTASH_URL=10.102.129.23:5044
- APM_AGENT_ACTIVE=true
- JPDA_ADDRESS=16002
- JPDA_TRANSPORT=dt_socket
volumes:
- /u/docker/nginx/html/logs/rcs:/rcs/logs
- /u/docker/rcs/mission/script:/rcs/uploads/mission-script traffic-mgr:
image: "dck0.prime/prime-rcs-traffic-manager:${RCS_TRAFFIC_VERSION:-0.0.1-SNAPSHOT}"
# logging: *graylog-logging
deploy: *default-limits
depends_on:
- config-server
networks:
- outside
ports:
- "19090:19090"
- "16001:16001"
environment:
- *rcs-config-server-url
- RCS_CONFIG_CLIENT_PROFILE=qa
- LOGBACK_LOGSTASH_URL=10.102.129.23:5044
- APM_AGENT_ACTIVE=true
- JPDA_ADDRESS=16001
- JPDA_TRANSPORT=dt_socket
volumes:
- /u/docker/nginx/html/logs/rcs:/rcs/logs battery-mgr:
image: "dck0.prime/prime-rcs-battery-manager:${RCS_BATTERY_VERSION:-0.0.1-SNAPSHOT}"
# logging: *graylog-logging
deploy: *default-limits
depends_on:
- config-server
networks:
- outside
ports:
- "19040:19040"
environment:
- *rcs-config-server-url
- RCS_CONFIG_CLIENT_PROFILE=qa
- LOGBACK_LOGSTASH_URL=10.102.129.23:5044
- APM_AGENT_ACTIVE=true
volumes:
- /u/docker/nginx/html/logs/rcs:/rcs/logs simulator-mgr:
image: "dck0.prime/prime-rcs-simulator:${RCS_SIMULATOR_VERSION:-0.0.1-SNAPSHOT}"
# logging: *graylog-logging
deploy: *default-limits
depends_on:
- config-server
networks:
- outside
ports:
- "18010:18010"
environment:
- *rcs-config-server-url
- RCS_CONFIG_CLIENT_PROFILE=qa
- LOGBACK_LOGSTASH_URL=10.102.129.23:5044
- APM_AGENT_ACTIVE=true
volumes:
- /u/docker/nginx/html/logs/rcs:/rcs/logs error-mgr:
image: "dck0.prime/prime-rcs-error:${RCS_SIMULATOR_VERSION:-0.0.1-SNAPSHOT}"
# logging: *graylog-logging
deploy: *default-limits
depends_on:
- config-server
networks:
- outside
ports:
- "18040:18040"
environment:
- *rcs-config-server-url
- RCS_CONFIG_CLIENT_PROFILE=qa
- LOGBACK_LOGSTASH_URL=10.102.129.23:5044
- APM_AGENT_ACTIVE=true
volumes:
- /u/docker/nginx/html/logs/rcs:/rcs/logs eshelf-mgr:
image: "dck0.prime/prime-rcs-eshelf:${RCS_ESHELF_VERSION:-0.0.1-SNAPSHOT}"
# logging: *graylog-logging
deploy: *default-limits
depends_on:
- config-server
networks:
- outside
ports:
- "19110:19110"
environment:
- *rcs-config-server-url
- RCS_CONFIG_CLIENT_PROFILE=qa
volumes:
- /u/docker/nginx/html/logs/rcs:/rcs/logs path-plan:
image: "dck0.prime/prime-rcs-path-plan:${RCS_PATH_PLAN_VERSION:-0.0.1-SNAPSHOT}"
# logging: *graylog-logging
deploy: *default-limits
networks:
- outside
ports:
- "18020:80"
environment:
- RCS_MISSION_SERVER=http://mission-mgr:19030
volumes:
- /u/docker/nginx/html/logs/rcs:/RcsPathPlan/logs ticket-mgr:
image: "dck0.prime/prime-web-service:latest"
# logging: *graylog-logging
deploy: *default-limits
networks:
- outside
ports:
- "3000:3000" # prime-rcs-authentication:
# image: "dck0.prime/prime-rcs-authentication:0.0.1-SNAPSHOT"
# # logging: *graylog-logging
# deploy: *default-limits
# networks:
# - outside
# ports:
# - "8090:8090" # prime-rcs-auth2-web:
# image: "dck0.prime/prime-rcs-auth2-web:0.0.1-SNAPSHOT"
# # logging: *graylog-logging
# deploy: *default-limits
# networks:
# - outside
# ports:
# - "8091:8091" asc-bridge:
image: "dck0.prime/prime-asc-bridge:1.0-SNAPSHOT"
# logging: *graylog-logging
deploy: *default-limits
depends_on:
- config-server
networks:
- outside
ports:
- "19080:19080"
volumes:
- /u/docker/nginx/html/logs/rcs:/rcs/logs
environment:
- *rcs-config-server-url
- RCS_CONFIG_CLIENT_PROFILE=qa
- LOGBACK_LOGSTASH_URL=10.102.129.23:5044 networks:
outside:
external: true
name: qa-subnet
Docker Stack 笔记的更多相关文章
- Docker Stack 学习笔记
该文为<深入浅出Docker>的学习笔记,感谢查看,如有错误,欢迎指正 一.简介 Docker Stack 是为了解决大规模场景下的多服务部署和管理,提供了期望状态,滚动升级,简单易用,扩 ...
- docker stack 部署 mssql
=============================================== 2019/12/8_第1次修改 ccb_warlock == ...
- Docker学习笔记 — 配置国内免费registry mirror
Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror
- docker学习笔记1 -- 安装和配置
技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- docker~学习笔记索引
回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...
- Docker Stack 集群部属服务
Docker越来越成熟,功能也越来越强大.使用Dokcer Stack做服务集群也是非常的方便,docker 自己就提供了负载功能,感觉很方便,就想给大家分享一下,做一个简单的教程. 环境 我是用了两 ...
- Docker学习笔记 - Docker容器内部署redis
Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...
- docker学习笔记(一)—— ubuntu16.04下安装docker
docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...
随机推荐
- 让document.write的广告无阻塞的加载
广告代码分析 很多第三方的广告系统都是使用document.write来加载广告,如下面的一个javascript的广告链接. 1 <script type="text/javascr ...
- Android组件化 + MVP + MVVM
前言 组件化和插件化已经提出了很久了,到现在也是比较稳定的一种架构方案了,在三年前,组件化和插件提出来没多久,前公司就已经在项目中使用了,只是当时还只是菜鸟,没有资格参与到架构的建设中,只是在大佬搭好 ...
- 令人困惑的strtotime
经常会有人被strtotime结合-1 month, +1 month, next month的时候搞得很困惑, 然后就会觉得这个函数有点不那么靠谱, 动不动就出问题. 用的时候就会很慌… 这不, 刚 ...
- Uber的API生命周期管理平台边缘网关(Edge Gateway)的设计实践
设计边缘网关(Edge Gateway),一个高可用和高可扩展的自助服务网关,用于配置.管理和监控 Uber 每个业务领域的 API. Uber 的 API 网关的演进 2014 年 10 月,优步开 ...
- MySQL<=>是什么鬼
官网描述 NULL-safe equal. This operator performs an equality comparison like the = operator, but returns ...
- python血脉贲张的cosplay小姐姐图片
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本环境配置 python 3.6 pycharm requests 相关模块pip安装即可 ...
- Spring学习(九)Spring 和数据库编程【了解】
一.传统 JDBC 回顾 用一个大佬的demo来简单看一下 /** * 使用jdbc,根据id查询单个Student的信息 */ public class JdbcManage { public St ...
- 《Java并发编程的艺术》笔记
第1章 并发编程的挑战 1.1 上下文切换 CPU通过时间片分配算法来循环执行任务,任务从保存到再加载的过程就是一次上下文切换. 减少上下文切换的方法有4种:无锁并发编程.CAS算法.使用最少线程.使 ...
- 论文阅读 A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SEN- TENCE EMBEDDINGS
这篇论文提出了SIF sentence embedding方法, 作者提供的代码在Github. 引入 作为一种无监督计算句子之间相似度的方法, sif sentence embedding使用预训练 ...
- 小白也能看懂的Redis教学基础篇——朋友面试被Skiplist跳跃表拦住了
各位看官大大们,双节快乐 !!! 这是本系列博客的第二篇,主要讲的是Redis基础数据结构中ZSet(有序集合)底层实现之一的Skiplist跳跃表. 不知道那些是Redis基础数据结构的看官们,可以 ...