If you're using Docker, here's a nice Docker cheat sheet. I've collected a few choice bits of Docker magic here.
Docker comes with a point-n-click way to start a shell with docker hooks attached. Here's an easier way:
eval "$(docker-machine env default)"
Terminology
Docker terminology has spawned some confusion. For instance: images vs. containers and registry vs. repository. Luckily, there's help, for example this stack-overflow post by a brilliant, but under-appreciated, hacker on the difference between images and containers.
- Registry - a service that stores image repositories
- Repository - a set of Docker images, usually versions of the same application
- Image - an immutable snapshot of a running container. An image consists of layers of file system changes stacked up on top of a base image.
- Container - a runtime instance of an image
Working with Docker
We don't need to ssh into the container. Maybe you could call this "shelling" into a container?
docker run --rm -it ubuntu:latest bash
... more here later. In the meantime, see wsargent's cheat sheet ...
The Dockerfile is a version-controllable artifact that automates the creation of a customized image from a base image. There's plenty of good advice in the guide to Best practices for writing Dockerfiles.
docker build -t myimagename .
Clean
You should almost always run with the --rm flag to avoid leaving shrapnel around. But, that's easy to forget. If there are lots of old containers hanging around, this bit of magic will help:
docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs --no-run-if-empty docker rm
Images can pile up, too. In What are Docker
docker rmi $(docker images -f "dangling=true" -q)
No comments:
Post a Comment