Docker Development
with Fig
Getting Started
- Create your Docker File
- Create your Fig file
- Fig up
Dockerfile
FROM ubuntu:12.04
MAINTAINER Nick Lang "nick.lang@docker.com"
RUN apt-get update
RUN apt-get install -y python-dev python-setuptools supervisor git-core libpq-dev
RUN easy_install pip
RUN pip install virtualenv
RUN virtualenv --no-site-packages /venvs/docker_madness
ADD . /docker_madness
ADD .docker/supervisor.conf /etc/supervisor/supervisor.conf
ADD .docker/run.sh /run.sh
RUN /venvs/docker_madness/bin/pip install -r /docker_madness/requirements.txt
RUN (cd /docker_madness && /venvs/docker_madness/bin/python manage.py collectstatic --noinput)
EXPOSE 8000
CMD ["/bin/sh", "-e", "/run.sh"]
What's going on in the Dockerfile
The Dockerfile is just a list of instruction that docker uses to construct the image.
There are more commands but this is a very simple list to get us started
-
FROM - is the image that our image will be based off of
-
MAINTAINER - the creator/maintainer of the image
-
RUN - command to be run and "recorded"
-
ADD - Add files from the "host" machine to the image
-
EXPOSE - Ports to expose when the container is running
-
CMD - command to be run when the container is run
What's the difference between an image and a container?
An image is what is created on `docker build`. It's a series of layers to be transfered around.
A container is what is actually running.
fig.yml
db: image: postgres web: build: . command: sh /run.sh volumes: - .:/docker_madness ports: - "8000:8000" links: - db
What's happening in the fig.yml?
We list out our container names on the first level.
The subsequent levels have information pertaining to each container to be run.
Lets run it?
demo gods be nice
Docker Development with Fig
By Nick Lang
Docker Development with Fig
- 2,407