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 笔记的更多相关文章

  1. Docker Stack 学习笔记

    该文为<深入浅出Docker>的学习笔记,感谢查看,如有错误,欢迎指正 一.简介 Docker Stack 是为了解决大规模场景下的多服务部署和管理,提供了期望状态,滚动升级,简单易用,扩 ...

  2. docker stack 部署 mssql

    =============================================== 2019/12/8_第1次修改                       ccb_warlock == ...

  3. Docker学习笔记 — 配置国内免费registry mirror

    Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror

  4. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  5. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  6. docker~学习笔记索引

    回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...

  7. Docker Stack 集群部属服务

    Docker越来越成熟,功能也越来越强大.使用Dokcer Stack做服务集群也是非常的方便,docker 自己就提供了负载功能,感觉很方便,就想给大家分享一下,做一个简单的教程. 环境 我是用了两 ...

  8. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  9. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

随机推荐

  1. cookie和session讲解

    1.cookie是什么? 保存在浏览器本地上的一组组键值对 2.session是什么? 保存在服务器上的一组组键值对 3.为什么要有cookie? HTTP是无协议状态,每次请求都是互相独立的,没有办 ...

  2. 关于h5游戏开发,你想了解的一切都在这儿!

    ​2020年,受疫情影响,线下产业红利褪去,线上迎来的新一轮的高峰.众多商家纷纷抓住了转型时机,开启了流量争夺战.H5游戏定制无疑是今年引流的大热门.如何开发一款有趣.有爆点.用户爱买单的好游戏呢? ...

  3. jenkins打包java项目缺少jar包问题解决

    java项目在使用jenkins打包时个别jar包可能会没有下载到本地,这时候就要用命令行本地安装一下 打包时基础jar包报错如图: 黑框里依次为: 组ID:-DgroupId=com.azazar ...

  4. JavaWeb实现图片上传功能

    首先导入文件上传的jar包 然后在Spring-servlet.xml文件中设置上传文件解析器 <!--上传文件解析器--> <bean id="multipartReso ...

  5. JS语法_类型

    类型 JS 的数据类型 boolean number string undefined null symbol object TS 额外的数据类型 void BigInt 是一种内置对象,它提供了一种 ...

  6. 【高并发】Redis如何助力高并发秒杀系统,看完这篇我彻底懂了!!

    写在前面 之前,我们在<[高并发]高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!>一文中,详细讲解了高并发秒杀系统的架构设计,其中,我们介绍了可以使用Redis存储秒杀商品的库存数量.很 ...

  7. jzoj 6797. 【2014广州市选day2】hanoi

    Description 你对经典的hanoi塔问题一定已经很熟悉了.有三根柱子,n个大小不一的圆盘,要求大盘不能压在小盘上,初始时n个圆盘都在第一根柱子上,最少要多少步才能挪到最后一根柱子上? 现在我 ...

  8. Azure Cosmos DB介绍及演示

    Azure Cosmos DB 是 Microsoft 提供的全球分布式多模型数据库服务.Cosmos DB是一种NoSql数据库,但是它兼容多种API.它支持SQL, MongoDB.Cassand ...

  9. tomcat源码之概述

    tomcat架构及常用的组件如下: Server Server代表了tomcat服务器,Tomcat启动时即会启动一个server实例,它监听在8005端口以接收shutdown命令,使用 telne ...

  10. 立下flag!

    从今日(2020年6月29日)开始,直到两个月的暑假结束2020年8月31日,每天vp一场div3,至少要ac4道题目.