building images from dockerfiles

12
Building Images from Dockerfiles Tyler Brock @tylerbrock

Upload: docker-inc

Post on 18-Nov-2014

81 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Building Images from dockerfiles

Building Images from Dockerfiles Tyler Brock

@tylerbrock

Page 2: Building Images from dockerfiles

FROM - specify base image FROM <image> Or FROM <image>:<tag>

FROM ubuntu FROM ubuntu:latest FROM ubuntu:precise (LTS)

Page 3: Building Images from dockerfiles

MAINTAINER - blame MAINTAINER <name>

MAINTAINER Tyler Brock, [email protected]

Page 4: Building Images from dockerfiles

ADD - copy a file ADD <src> <dest>

ADD myhax.rb /folder/for/hax/hax.rb

Page 5: Building Images from dockerfiles

ENV - set the mood ENV <key> <value>

ENV AWS-KEY ACBD123123EFECBD

Page 6: Building Images from dockerfiles

RUN - get shit done RUN <command>

RUN apt-get install htop

Page 7: Building Images from dockerfiles

CMD - what should it do? ●  CMD ["executable","param1","param2"] (like an exec,

preferred form) ●  CMD ["param1","param2"] (as default parameters to

ENTRYPOINT) ●  CMD command param1 param2 (as a shell)

Page 8: Building Images from dockerfiles

ENTRYPOINT - start here ENTRYPOINT ["executable", "param1", "param2"] (like an

exec, preferred form) ENTRYPOINT command param1 param2 (as a shell)

ENTRYPOINT wc -l -

CMD ["-l", "-"] ENTRYPOINT ["/usr/bin/wc"]

Page 9: Building Images from dockerfiles

EXPOSE - connect here EXPOSE <port> [<port>...]

EXPOSE 80

Page 10: Building Images from dockerfiles

VOLUME VOLUME ["/data"]

The VOLUME instruction will add one or more new volumes to any container created from the image.

Puts /data here: /var/lib/docker/volumes/

Page 11: Building Images from dockerfiles

Dockerfile - the main event # What image are we using?

FROM ubuntu

# Take some credit

MAINTAINER Tyler Brock, [email protected]

# Add 10gen official apt source to the sources list

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/10gen.list

# Hack for initctl not being available in Ubuntu

RUN dpkg-divert --local --rename --add /sbin/initctl

RUN ln -s /bin/true /sbin/initctl

# Install MongoDB

RUN apt-get update

RUN apt-get install mongodb-10gen

# Install a sensible config

ADD mongod.conf /etc/mongod.conf

# Setup the image as an executable that runs MongoDB

CMD ["--config", "/etc/mongod.conf"]

ENTRYPOINT ["/usr/bin/mongod"]

EXPOSE 27017

Page 12: Building Images from dockerfiles

Build, Run, Enjoy docker build -t <repo/image name> /path/to/dockerfiledir

docker build -t tbrock/mongodb .

docker -d -v <host>:<container> <image/tag>

docker run -d -v /home/ubuntu/data: /data tbrock/mongodb