mirror of
https://github.com/jpetazzo/container.training.git
synced 2026-07-18 20:39:17 +00:00
Last updates for QCON
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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.*
|
||||
<br/>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!
|
||||
<br/>(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`
|
||||
<br/>(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[
|
||||
|
||||
<!-- Following line to be commented out if we skip extra_hosts section -->
|
||||
|
||||
<!--
|
||||
- Restore `links` as they were before in `webui` and `worker`
|
||||
|
||||
-->
|
||||
<!-- -->
|
||||
|
||||
- Replace `redis` with an ambassador using `jpetazzo/hamba`:
|
||||
@@ -1558,27 +1577,6 @@ class: pic
|
||||
Shortcut: `docker-compose.yml-ambassador`
|
||||
<br/>(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
|
||||
<br/>.small[(e.g. `/home/docker/orchestration-workshop/dockercoins/webui/files`)]
|
||||
|
||||
- This host path exists on the local machine
|
||||
<br/>(not on the others)
|
||||
|
||||
- This specific volume is used in development
|
||||
<br/>(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
|
||||
<br/>.small[(e.g. `/home/docker/orchestration-workshop/dockercoins/webui/files`)]
|
||||
|
||||
- This host path exists on the local machine
|
||||
<br/>(not on the others)
|
||||
|
||||
- This specific volume is used in development
|
||||
<br/>(not in production)
|
||||
|
||||
---
|
||||
|
||||
## Stop the app (but leave Redis running)
|
||||
|
||||
- Let's use `docker-compose down`
|
||||
|
||||
Reference in New Issue
Block a user