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.
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.
Docker In Docker
Recommended Order For Learning
Pull and Run an Image
List Images
List Containers
Delete Container
Delete Image
Named Containers
Start Containers
Tag an Image
Delete and Image by Tag
Execute Command In Container
Change The State of The Container
Commit Changes
Interacting With Containers
Pushing Images
Create An Image for a Python Application
Create An Image for a Ruby Application
Setting Environment Variables
Overriding Environment Variables
Publish Network Interfaces
Mounting Volumes
Defining Your Network Interface
Defining Your Volume
Bypass ENTRYPOINT
Remove Exited Containers
Remove Dangling Images
Remove all Images
List Docker Volumes
Remove Docker Volume
Fetch Logs From a Container
Rename a Container
Restart a Container
Attach to a Running Container
Create, but don't start, a Container
List the History of an Image
Get Info on Docker
Kill a Running Container
Login to Docker
Logout of Docker
Change between Remotes
Get Stats on Running Containers
List Network Interface Ports
Pause a Container
Unpause a Container
Update a Container Configuration
Wait for a Container to Stop
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