/DockerKata

Some katas for using docker

Primary LanguageHTMLMIT LicenseMIT

Docker Katas

Some katas for using docker.

The intent here is to create a training aid for new and forgetful Docker users. We've mostly just pulled these together from around the internet, out of books, or made them up. If you see something missing and you'd like to contribute, please feel free to create a Pull Request on this repo.

Setup

The expectation is that you will use the Docker In Docker (aka meta-docker) approach to execute these katas. Look for notes in the kata for how to run without the meta-docker settings.

  1. Docker In Docker

Recommended Order For Learning

  1. Pull and Run an Image
  2. List Images
  3. List Containers
  4. Delete Container
  5. Delete Image
  6. Named Containers
  7. Start Containers
  8. Tag an Image
  9. Delete and Image by Tag
  10. Execute Command In Container
  11. Change The State of The Container
  12. Commit Changes
  13. Interacting With Containers
  14. Pushing Images
  15. Create An Image for a Python Application
  16. Create An Image for a Ruby Application
  17. Setting Environment Variables
  18. Overriding Environment Variables
  19. Publish Network Interfaces
  20. Mounting Volumes
  21. Defining Your Network Interface
  22. Defining Your Volume
  23. Bypass ENTRYPOINT
  24. Remove Exited Containers
  25. Remove Dangling Images
  26. Remove all Images
  27. List Docker Volumes
  28. Remove Docker Volume
  29. Fetch Logs From a Container
  30. Rename a Container
  31. Restart a Container
  32. Attach to a Running Container
  33. Create, but don't start, a Container
  34. List the History of an Image
  35. Get Info on Docker
  36. Kill a Running Container
  37. Login to Docker
  38. Logout of Docker
  39. Change between Remotes
  40. Get Stats on Running Containers
  41. List Network Interface Ports
  42. Pause a Container
  43. Unpause a Container
  44. Update a Container Configuration
  45. Wait for a Container to Stop

By Command

build

Bypass Entrypoint

Define Network Interface

Define Volume

Overriding Envvars

Setting Envvars

Simple Python Image

Simple Ruby Image

commit

Commit Changes

create

Create Container

Named Containers

exec

Attach Container

Change Container State

Commit Changes

Exec In Container

Interacting

history

Image History

images

Commit Changes

Define Network Interface

Define Volume

Delete Image

Delete Image By Tag

List Images

Overriding Envvars

Pushing Images

Remove All Images

Remove Dangling Images

Setting Envvars

Simple Python Image

Simple Ruby Image

Tag An Image

info

System Info

kill

Kill Container

login

Change Repos

Login

Pushing Images

logout

Change Repos

Logout

logs

Fetch Logs

pause

Pause Container

Unpause Container

port

Network Ports

ps

Create Container

Delete Container

Fetch Logs

Kill Container

List Containers

Named Containers

Remove Exited Containers

Rename Container

Restart Container

pull

Named Containers

Pull And Run Image

Tag An Image

push

Pushing Images

rename

Rename Container

restart

Restart Container

rm

Attach Container

Commit Changes

Create Container

Delete Container

Fetch Logs

Kill Container

Network Ports

Pause Container

Remove Exited Containers

Remove Volume

Rename Container

Restart Container

Stats

Unpause Container

Update Container Config

Wait For Container

rmi

Bypass Entrypoint

Commit Changes

Define Network Interface

Define Volume

Delete Image

Delete Image By Tag

Overriding Envvars

Remove All Images

Remove Dangling Images

Setting Envvars

Simple Python Image

Simple Ruby Image

run

Attach Container

Bypass Entrypoint

Commit Changes

Define Network Interface

Define Volume

Fetch Logs

Kill Container

List Containers

List Volumes

Mounting Volumes

Network Ports

Overriding Envvars

Pause Container

Publish Network Interfaces

Pull And Run Image

Remove Volume

Rename Container

Restart Container

Setting Envvars

Simple Python Image

Simple Ruby Image

Stats

Unpause Container

Update Container Config

Wait For Container

start

Change Container State

Commit Changes

Start Containers

stats

Stats

stop

Attach Container

Change Container State

Commit Changes

Fetch Logs

Kill Container

List Containers

List Volumes

Network Ports

Pause Container

Rename Container

Restart Container

Start Containers

Stats

Unpause Container

Update Container Config

Wait For Container

tag

Pushing Images

Tag An Image

unpause

Pause Container

Unpause Container

update

Update Container Config

volume

List Volumes

Remove Volume

wait

Wait For Container