From 88e558bd0876c465ab084f04b02b98a27468fc6f Mon Sep 17 00:00:00 2001 From: Jerome Petazzoni Date: Fri, 11 Mar 2016 00:29:58 -0800 Subject: [PATCH] Last updates for QCON --- dockercoins/webui/files/index.html | 2 +- www/htdocs/index.html | 107 +++++++++++++++++++---------- 2 files changed, 73 insertions(+), 36 deletions(-) diff --git a/dockercoins/webui/files/index.html b/dockercoins/webui/files/index.html index accd2c23..e11773a5 100644 --- a/dockercoins/webui/files/index.html +++ b/dockercoins/webui/files/index.html @@ -50,7 +50,7 @@ function refresh () { points.push({ x: s2.now, y: speed }); } $("#speed").text("~" + speed.toFixed(1) + " hashes/second"); - var msg = ("I'm attending the @docker Swarm workshop at @qconlondon, " + var msg = ("It's #SwarmWeek! I'm attending the @docker workshop at @qconlondon, " + "and my #DockerCoins mining rig is crunching " + speed.toFixed(1) + " hashes/second! W00T!"); $("#tweet").attr( diff --git a/www/htdocs/index.html b/www/htdocs/index.html index 5fa61d96..02342267 100644 --- a/www/htdocs/index.html +++ b/www/htdocs/index.html @@ -295,7 +295,7 @@ If you want to use screen or whatever, you're welcome! ## Brand new versions! -- Engine 1.10.2 +- Engine 1.10.**3** - Compose 1.6.2 @@ -1242,7 +1242,7 @@ faster for a well-behaved application.* - `redis` must resolve to the address of our Redis service - the Redis service must listen on the default port (6379) ---- +??? ## Using host name injection to abstract service dependencies @@ -1267,7 +1267,7 @@ faster for a well-behaved application.*
with a private view where `redis` resolves to `192.168.1.2` (Before Engine 1.10, it created entries in `/etc/hosts`) ---- +??? ## The plan @@ -1289,7 +1289,7 @@ faster for a well-behaved application.* Note: the code stays on the first node!
(We do not need to copy the code to the other nodes.) ---- +??? ## Making Redis available on its default port @@ -1311,7 +1311,7 @@ There are two strategies. Choose wisely! ---- +??? ## Deploy Redis @@ -1337,7 +1337,7 @@ Choose wisely! The `ERR` messages are normal: Redis speaks Redis, not HTTP. ---- +??? ## Update `docker-compose.yml` (1/3) @@ -1352,7 +1352,7 @@ The `ERR` messages are normal: Redis speaks Redis, not HTTP. ] ---- +??? ## Update `docker-compose.yml` (2/3) @@ -1377,7 +1377,7 @@ Replace `A.B.C.D` with the IP address noted earlier. Shortcut: `docker-compose.yml-extra-hosts`
(But you still have to replace `A.B.C.D`!) ---- +??? ## Update `docker-compose.yml` (3/3) @@ -1400,7 +1400,7 @@ Shortcut: `docker-compose.yml-extra-hosts` (Replace `A.B.C.D` with the IP address noted earlier) ---- +??? ## Start the stack on the first machine @@ -1416,7 +1416,7 @@ Shortcut: `docker-compose.yml-extra-hosts` - Check in the web browser that it's running correctly ---- +??? ## Start the stack on another machine @@ -1439,7 +1439,7 @@ Shortcut: `docker-compose.yml-extra-hosts` ] ---- +??? ## Scale! @@ -1459,7 +1459,7 @@ Shortcut: `docker-compose.yml-extra-hosts` Note: of course, if we wanted, we could run on all five nodes. ---- +??? ## Cleanup @@ -1481,6 +1481,25 @@ Note: of course, if we wanted, we could run on all five nodes. --- +# Using custom DNS mapping + +- We could setup a Redis server on its default port + +- And add a DNS entry mapping `redis` to this server + +.exercise[ + +- See what happens if we run: + ``` + docker run --add-host redis:1.2.3.4 alpine ping redis + ``` + +] + +There is a Compose file option for that: `extra_hosts`. + +--- + # Abstracting remote services with ambassadors - What if we can't/won't run Redis on its default port? @@ -1540,9 +1559,9 @@ class: pic .exercise[ - + - Replace `redis` with an ambassador using `jpetazzo/hamba`: @@ -1558,27 +1577,6 @@ class: pic Shortcut: `docker-compose.yml-ambassador`
(But you still have to update `AA.BB.CC.DD EEEE`!) -??? - -## Why did we comment out the `volumes` section? - -- Volumes have multiple uses: - - - storing persistent stuff (database files...) - - - sharing files between containers (logs, configuration...) - - - sharing files between host and containers (source...) - -- The `volumes` directive expands to an host path -
.small[(e.g. `/home/docker/orchestration-workshop/dockercoins/webui/files`)] - -- This host path exists on the local machine -
(not on the others) - -- This specific volume is used in development -
(not in production) - --- ## Start the stack on the first machine @@ -1675,6 +1673,45 @@ Let's celebrate our success! --- +## A few words about development volumes + +- Try to access the web UI on another node + +-- + +- It doesn't work! Why? + +-- + +- Static assets are masked by an empty volume + +-- + +- We need to comment out the `volumes` section + +--- + +## Why must we comment out the `volumes` section? + +- Volumes have multiple uses: + + - storing persistent stuff (database files...) + + - sharing files between containers (logs, configuration...) + + - sharing files between host and containers (source...) + +- The `volumes` directive expands to an host path +
.small[(e.g. `/home/docker/orchestration-workshop/dockercoins/webui/files`)] + +- This host path exists on the local machine +
(not on the others) + +- This specific volume is used in development +
(not in production) + +--- + ## Stop the app (but leave Redis running) - Let's use `docker-compose down`