Files
container.training/slides/swarm/ourapponswarm.md
Jérôme Petazzoni 8decf1852f Refactor build-tag-push
We now have two clean classes: btp-manual and btp-auto

Exclude one or the other depending on whether you want to
show the full process of building and pushing images, or
if you want to shortcut and use stack files directly.
2017-11-07 19:43:42 -08:00

2.3 KiB

Our app on Swarm

In this part, we will:

  • build images for our app,

  • ship these images with a registry,

  • run services using these images.


Why do we need to ship our images?

  • When we do docker-compose up, images are built for our services

  • These images are present only on the local node

  • We need these images to be distributed on the whole Swarm

  • The easiest way to achieve that is to use a Docker registry

  • Once our images are on a registry, we can reference them when creating our services


class: extra-details

Build, ship, and run, for a single service

If we had only one service (built from a Dockerfile in the current directory), our workflow could look like this:

docker build -t jpetazzo/doublerainbow:v0.1 .
docker push jpetazzo/doublerainbow:v0.1
docker service create jpetazzo/doublerainbow:v0.1

We just have to adapt this to our application, which has 4 services!


The plan

  • Build on our local node (node1)

  • Tag images so that they are named localhost:5000/servicename

  • Upload them to a registry

  • Create services using the images


Which registry do we want to use?

.small[

  • Docker Hub

    • hosted by Docker Inc.
    • requires an account (free, no credit card needed)
    • images will be public (unless you pay)
    • located in AWS EC2 us-east-1
  • Docker Trusted Registry

    • self-hosted commercial product
    • requires a subscription (free 30-day trial available)
    • images can be public or private
    • located wherever you want
  • Docker open source registry

    • self-hosted barebones repository hosting
    • doesn't require anything
    • doesn't come with anything either
    • located wherever you want

]


class: extra-details

Using Docker Hub

If we wanted to use the Docker Hub...

  • We would log into the Docker Hub:

    docker login
    
  • And in the following slides, we would use our Docker Hub login (e.g. jpetazzo) instead of the registry address (i.e. 127.0.0.1:5000)


class: extra-details

Using Docker Trusted Registry

If we wanted to use DTR, we would...

This is out of the scope of this workshop!