The adventures of Docker and the Space Purple Unicorn Association


Figure 1

SPUA logo

Docker Desktop


Figure 1

Docker Desktop being opened for the first time.

Figure 2

Search and pull of SPUC container - Step 1

Figure 3

Search and pull of SPUC container - Step 2

Figure 4

Search and pull of SPUC container - Step 3

Figure 5

Search and pull of SPUC container - Step 4

Figure 6

Search and pull of SPUC container - Step 5

Figure 7

Images list showing spuc, alpine and hello-world.

Figure 8

Inspecting spuc image - Step 1

Figure 9

Inspecting spuc image - Step 2

Figure 10

Inspecting spuc image - Step 3

Figure 11

Run button from Images tab.

Figure 12

Run confirmation prompt.

Figure 13

Logs tab in container from hello-world image.

Figure 14

Inspect tab in container from hello-world image.

Figure 15

Bind mounts tab in container from hello-world image.

Figure 16

Exec tab in container from hello-world image.

Figure 17

Files tab in container from hello-world image.

Figure 18

Stats tab in container from hello-world image.

Figure 19

Clicking Start on the already run hello-world container - Step 1

Figure 20

Clicking Start on the already run hello-world container - Step 2

Figure 21

Running hello-world image for a second time - Step 1

Figure 22

Running hello-world image for a second time - Step 2

Figure 23

Running hello-world image for a second time - Step 3

Figure 24

Containers list.

Figure 25

Optional settings for spuc - Step 1

Figure 26

Optional settings for spuc - Step 2

Figure 27

Optional settings for spuc - Step 3

Figure 28

Logs tab in container from spuc image.

Figure 29

Inspect tab in container from spuc image.

Figure 30

Bind mounts tab in container from spuc image.

Figure 31

Exec tab in container from spuc image.

Figure 32

Files tab in container from spuc image.

Figure 33

Stats tab in container from spuc image.

Figure 34

Containers list, spuc still running.

Figure 35

Detecting a unicorn, spuc logs.

Figure 36

Interacting with spuc terminal in the Exec tab - Step 1

Figure 37

Interacting with spuc terminal in the Exec tab - Step 2

Figure 38

Interacting with spuc terminal in the Exec tab - Step 3

Figure 39

Interacting with spuc terminal in the Exec tab - Step 4

Figure 40

Interacting with spuc terminal in the Exec tab - Step 5

Figure 41

Interacting with spuc terminal in the Exec tab - Step 6

Figure 42

Interacting with spuc terminal in the Exec tab - Step 7

Figure 43

Stop the spuc container - Step 1

Figure 44

Stop the spuc container - Step 2

Figure 45

Stop the spuc container - Step 3

Figure 46

Exec in fresh spuc container - Step 1

Figure 47

Exec in fresh spuc container - Step 2

Figure 48

Exec in fresh spuc container - Step 3

Figure 49

Exec in fresh spuc container - Step 4

Figure 50

Containers list after new run of spuc image.

Figure 51

Reviving container spuc - Step 1

Figure 52

Reviving container spuc - Step 2

Figure 53

Reviving container spuc - Step 3

Figure 54

Reviving container spuc - Step 4

Figure 55

Optional settings for spuc - Step 1

Figure 56

Optional settings for spuc - Step 2

Figure 57

Optional settings for spuc - Step 3

Figure 58

Optional settings for spuc - Step 1

Figure 59

Optional settings for spuc - Step 2

Figure 60

Optional settings for spuc - Step 3

Figure 61

Optional settings for spuc - Step 4

Figure 62

Optional settings for spuc - Step 5

Figure 63

Optional settings for spuc - Step 6

Figure 64

Deleting container SPUC - Step 1

Figure 65

Deleting container SPUC - Step 2

Figure 66

Deleting container SPUC - Step 3

Figure 67

Failing to delete image - Step 1

Figure 68

Failing to delete image - Step 2

Figure 69

Failing to delete image - Step 3

Figure 70

Deleting containers - Step 1

Figure 71

Deleting containers - Step 2

Figure 72

Deleting containers - Step 3

Figure 73

Deleting containers - Step 4

Figure 74

Successfully deleting images - Step 1

Figure 75

Successfully deleting images - Step 2

Figure 76

Successfully deleting images - Step 3

Figure 77

Logs tab in container from alpine image.

Figure 78

Inspect tab in container from alpine image.

Figure 79

Bind mounts tab in container from alpine image.

Figure 80

Exec tab in container from alpine image.

Figure 81

Files tab in container from alpine image.

Figure 82

Stats tab in container from alpine image.

Building our Docker CLI toolkit


Figure 1

A diagram showing the syntactic structure of a Docker command

Figure 2

A diagram representing the lifecycle of a container

Figure 3

Further details and examples of the lifecycle of a container

Sharing information with containers


The Docker Hub


Figure 1

Dockerhub_landing

Figure 2

Dockerhub_search

Figure 3

Dockerhub_spuc

Figure 4

Dockerhub_spuc_tags

Figure 5

Dockerhub_spuc_latest

Figure 6

Dockerhub_python

Configuring containers


Creating Your Own Container Images


Using Docker Compose


And they lived happily ever after


Figure 1

Apperture Services: Showing a user accessing WhoAmI via the web portal, which is protected by Authelia, which authenticates against an LDAP server, which pulls user data from a Postgres database.

Figure 2

SPUC and Apperture Services: Showing a user accessing the SPUC interface via the web portal.

Figure 3

SPUC and Apperture Services: Showing a user accessing the SPUC interface via the web portal, which is protected by Authelia, which authenticates against an LDAP server, which pulls user data from a Postgres database. The SPUC interface communicates with a Postgres database, a RabbitMQ message queue, a Telegraf sensor, and a MinIO object store.

Figure 4

Thank you for supporting the SPUA!