Docker Basics
2016-01-03
This is a quick guide for getting started with developing software projects using Docker. It assumes you’ve already followed an installation guide on the Docker website.
Objectives:
- create a Dockerfile
- create a Docker image
- start a container from the created image for developing on the local filesystem
- run commands on the started container
- add files from your software project to the created container
- test out your development environment
- mention some useful docker commands
Create a Dockerfile
Docker uses a custom syntax for building an image. Here is an example Dockerfile that uses Ubuntu 14.04 LTS and installs some packages:
# use ubuntu 14.04 LTS
FROM ubuntu:14.04
# update the apt-get package repositories
RUN apt-get update -y
# install some packages
RUN apt-get install -y erlang
The Dockerfile is usually found in the directory of the project you’re wanting to create a docker container for.
Create a Docker image
The command docker build
creates the image. To distinguish your image
from other images, give it a tag. A tag is in the format of repo:tag
.
The following will build a Docker image from the Dockerfile in the
current directory (without the tag part):
docker build -t "ubuntu/erlang" .
Create a docker container
Now that the image is created, the container can be created from the image
using docker create
:
docker create -i -t --name erlang -v $PWD:/app "ubuntu/erlang" /bin/bash
This creates an interactive docker container, named erlang
that mounts the
local host filesystem to a directory on the container called /app
. Now local
edits to the project will be available to the new container.
Start the container and test
Use docker start
to boot up the container and create an interactive shell:
docker start -a -i erlang
At this point you can list files in your mounted volume and run commands from the container:
nuex@straylight:~/_dev/resmatch$ docker start -a -i erlang
root@a534eb68a503:/# ls /app
Dockerfile LICENSE README.md rebar.config src test
Useful Docker commands
Here are some useful commands for cleaning up containers while working with docker.
To list all started containers, use docker ps
:
docker ps -a
If you want to stop all of the containers:
docker kill $(docker ps -a -q)
If you want to delete all containers after you’ve stopped them:
docker rm $(docker ps -a -q)
Conclusion
At this point you should have a running container that can be used for development and a basic understanding of how to add packages to the container, run commands and mount projects.