Table of Contents

Example

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: username/repo:tag
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

where:

  • web define the name of the service as web
  • image: defines the image to pull
  • replicas defines the number of instances to run
  • limits limits each replica to use, at most, 10% of the CPU (across all cores), and 50MB of RAM.
  • restart_policy defines that a replica must restart on failure
  • ports map the port 80 on the host to web’s port 80. See Docker - Port
  • webnet defines a load-balanced network that shares the port 80 (Internally, the containers themselves publish to web’s port 80 at an ephemeral port.). The default settings is a load-balanced overlay network.

Managment

Run the specified Compose file. See Docker - App

docker swarm init
docker stack deploy -c <composefile> <appname>   

Configuration

Port

Port linkage

version: '2'

services:

  serviceName:
    ports:
      - "8080:8080"
      - "80:80"
      - ...

Network

version: '2'

services:

  serviceName:
    networks:
      - netWorkName

networks:

  networkName:
    driver: bridge

See: Network - Bridge Driver

Documentation / Reference