The document discusses how to easily deploy applications into any cloud using Docker containers. It provides an overview of Docker, including how it allows building applications once and running them anywhere without recompilation. Examples are given of using Docker for development, continuous integration, and deploying and managing applications across clouds with tools like Docker Compose, Docker Machine, and Docker Swarm.
12. Example of using Docker
4 build documentation in Sphinx with latex support
4 executing code in many different programming
languages without requiring a single compiler or
script interpreter on your machine - docker exec
4 running gui app in docker at linux
IPEX Meetup Brno, 9.3.2016 12
13. Example of using Docker
4 development without install ing many tools at local machine
4 Vagrant, Otto dev
4 continues integration using docker
4 Jenkins, TravisCI, CircleCI
4 DevOps platform for build, deploy and manage apps
across any cloud
IPEX Meetup Brno, 9.3.2016 13
29. Docker machine
4 Machine lets you create Docker hosts on your
computer, on cloud providers, and inside your own
data center.
4 part of Docker toolbox
4 replacement for boot2docker
IPEX Meetup Brno, 9.3.2016 29
30. Docker swarm
4 Docker Swarm is native clustering for
Docker.
4 Swarm serves the standard Docker
API, so any tool which already
communicates with a Docker daemon
can use Swarm to transparently scale
to multiple hosts: Dokku, Compose,
Krane, Flynn, Deis, DockerUI,
Shipyard, Drone, Jenkins... and, of
course, the Docker client itself.
IPEX Meetup Brno, 9.3.2016 30
42. wercker.yml example
# The container definition we want to use for developing our app
box: golang
# Defining the dev pipeline
dev:
steps:
- internal/watch:
code: |
go build ./...
./source
reload: true
IPEX Meetup Brno, 9.3.2016 42
44. Building a Go app for scratch
containers
build:
box: google/golang
steps:
# Test the project
- script:
name: go test
code: go test ./...
# Statically build the project
- script:
name: go build
code: CGO_ENABLED=0 go build -a -ldflags '-s' -installsuffix cgo -o app .
# Copy binary to a location that gets passed along to the deploy pipeline
- script:
name: copy binary
code: cp app "$WERCKER_OUTPUT_DIR"
IPEX Meetup Brno, 9.3.2016 44
45. Docker in AWS
4 Elastic Beanstalk
4 EC2 Container Service (ECS)
4 EC2 with Swarm, Mesos or Kubernetes
IPEX Meetup Brno, 9.3.2016 45
48. Apache Messos
4 Scalability to 10,000s of nodes
4 Fault-tolerant replicated master and slaves using ZooKeeper
4 Support for Docker containers
4 Native isolation between tasks with Linux Containers
4 Multi-resource scheduling (memory, CPU, disk, and ports)
4 Java, Python and C++ APIs for developing new parallel applications
4 Web UI for viewing cluster state
IPEX Meetup Brno, 9.3.2016 48
49. Notes at the end
4 don't use Docker as VM
4 build & production images
4 tag every image using in production (not just latest)
4 big difference between languages (NodeJS & Go)
4 don't use latest Docker versions in production
4 try use dockerlint for your Dockerfiles
IPEX Meetup Brno, 9.3.2016 49