Docker Stack 笔记
2020-10-17 15:51 AndrewCja 阅读(347) 评论(0) 编辑 收藏 举报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. depends_on does not wait for db and redis to be “ready” before starting web - only until they have been started. If you need to wait for a service to be ready, see Controlling startup order (wait-for-it.sh) for more on this problem and strategies for solving it.
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
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 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 networks: outside: external: true name: qa-subnet
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)