×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Docker 101
Slide 2
Slide 2 text
What is Docker?
Slide 3
Slide 3 text
Why is it different?
Slide 4
Slide 4 text
VM model vs Docker model
Slide 5
Slide 5 text
Pros
Slide 6
Slide 6 text
● Rapid app deployment ● Portability ● Version control ● Lightweight ● Inmutable ● ...
Slide 7
Slide 7 text
Cons
Slide 8
Slide 8 text
● New tooling needed ● Addoption ● Orchestration ● <- putYourOwn
Slide 9
Slide 9 text
Hands on!
Slide 10
Slide 10 text
docker-machine $ docker-machine create --driver virtualbox jt $ eval $(docker-machine env jt)
Slide 11
Slide 11 text
docker run $ docker run -it ubuntu d9f46b212a12fba0091f0f...
Slide 12
Slide 12 text
docker images vs docker ps $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest d55e68e6cc9c 5 days ago 187.9 MB $ docker ps CONTAINER ID IMAGE COMMAND CREATED... 12fba0091f0f ubuntu "sleep 10s" 2 seconds ago... c8e8b387fba7 ubuntu "yes" 2 seconds ago...
Slide 13
Slide 13 text
docker logs $ docker run -d ubuntu find / db943d94d68011757ffad50a94727ec0fda1a70245f1b6c09f46... $ docker logs db943d94d68011757ff1b6c09f46... | head -n4 / /.dockerinit /etc /etc/resolv.conf
Slide 14
Slide 14 text
registry
Slide 15
Slide 15 text
docker pull $ docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu 9377ad319b00: Pull complete a82f81f25750: Pull complete b207c06aba70: Pull complete d55e68e6cc9c: Pull complete library/ubuntu:latest: The image you are pulling has... Digest: sha256:a2b67b6107aa6b1a387e75eebafd7c...
Slide 16
Slide 16 text
docker push $ docker tag d55e68e6cc9c agonzalezro/jt $ docker push agonzalezro/jt The push refers to a repository [docker.io/agonzalezro/jt] (len: 1) d55e68e6cc9c: Image successfully pushed b207c06aba70: Image successfully pushed a82f81f25750: Image successfully pushed 9377ad319b00: Image successfully pushed latest: digest: sha256:b385f1dfb6fcda517d1... size: 7739
Slide 17
Slide 17 text
extra cmds
Slide 18
Slide 18 text
$ docker stop $ docker pause $ docker unpause $ docker start $ docker rm $ docker rmi ... AKA RTM
Slide 19
Slide 19 text
Dockerfiles
Slide 20
Slide 20 text
Dockerfile FROM debian:stable RUN apt-get update && apt-get install -y --force-yes apache2 EXPOSE 80 443 VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"] ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
Slide 21
Slide 21 text
What to do next? $ docker build -t agonzalezro/jt . $ docker push agonzalezro/jt
Slide 22
Slide 22 text
Compose
Slide 23
Slide 23 text
docker-compose.yml db: image: postgres ports: - “5432” companies: links: -db web_core: build: ../web_core command: bundle exec rails s -p 3000 -b ‘0.0.0.0’ ports: - ”3000:3000”
Slide 24
Slide 24 text
Hassle “free”
Slide 25
Slide 25 text
Thanks!