diff --git a/slides/swarm-fullday.yml b/slides/swarm-fullday.yml index 7627bd08..9a558279 100644 --- a/slides/swarm-fullday.yml +++ b/slides/swarm-fullday.yml @@ -55,6 +55,7 @@ chapters: - swarm/apiscope.md - - swarm/logging.md - swarm/metrics.md + - swarm/gui.md - swarm/stateful.md - swarm/extratips.md - shared/thankyou.md diff --git a/slides/swarm/gui.md b/slides/swarm/gui.md new file mode 100644 index 00000000..05796ba6 --- /dev/null +++ b/slides/swarm/gui.md @@ -0,0 +1,51 @@ +# GUI's: Web Admin of Swarms and Registry + +What about web interfaces to control and manage Swarm? + +- [Docker Enterprise](https://www.docker.com/products/docker-enterprise) is Docker Inc's paid offering, which has GUI's. + +- [Portainer](https://portainer.io) is a popular open source web GUI for Swarm with node agents. + +- [Portus](http://port.us.org) is a SUSE-backed open source web GUI for registry. + +- Find lots of other Swarm tools in the [Awesome Docker list](http://awesome-docker.netlify.com). + +--- + +## Lets deploy Portainer + +- Yet another stack file + +.exercise[ + +- Make sure we are in the stacks directory: + ```bash + cd ~/container.training/stacks + ``` + +- Deploy the Portainer stack: + ```bash + docker stack deploy -c portainer.yml portainer + ``` + +] + +--- + +## View and setup Portainer + +- go to `:9090` + +- You should see the setup UI. Create a 8-digit password. + +- Next, tell Portainer how to connect to docker. + +- We'll use the agent method (one per node). + + - For connection, choose `Agent` + + - Name: `swarm1` + + - Agent URL: `tasks.agent:9001` + +- Let's browse around the interface diff --git a/stacks/portainer.yml b/stacks/portainer.yml new file mode 100644 index 00000000..55e39738 --- /dev/null +++ b/stacks/portainer.yml @@ -0,0 +1,15 @@ +version: "3.4" + +services: + web: + image: portainer/portainer + ports: + - "9000:9000" + agent: + image: portainer/agent + volumes: + - /var/run/docker.sock:/var/run/docker.sock + deploy: + mode: global + environment: + AGENT_CLUSTER_ADDR: tasks.agent