How to start with docker
Toni Van de Voorde
CTO @ Adlogix.eu / Adsdaq.eu
@tonivdv
Unconference
Slide 2
Slide 2 text
Setup
• Native on linux
• Docker for Mac/Windows
• Docker toolbox
Slide 3
Slide 3 text
Docker For Mac
• Pros
• “Native” approach
• No virtualbox (uses lightweight virtualization of mac-os hypervisor
framework)
• Nice UX
• Cons
• Shares without NFS
• Only 1 virtual machine
Slide 4
Slide 4 text
Docker Toolbox
• Pros
• Easy NFS support with docker-machine-nfs (OSX only)
• Not only 1 virtual machine
• Use whatever hypervisor you love (virtualbox, xhyve, parallel, vmware, …)
• Cons
• Less UX ?
Slide 5
Slide 5 text
Docker Machine Tips
Configure ip range per different box
dm create \
-d virtualbox
--virtualbox-hostonly-cidr "192.168.70.1/24"
--virtualbox-disk-size "10000" docker-test
General Tips
• Dnsmasq + jwilder’s nginx-proxy
• Define your services with docker-compose
• Don’t put sensitive data in the images (ssh keys etc)
• Still be careful with case sensitivity
Slide 8
Slide 8 text
How to with ssh?
• Mount to container
volumes: - ~/.ssh:/root/.ssh
• SSH Agent
• (hack) Copy to “volume”
docker run --rm --name ssh-data -v my-ssh-data:/root/.ssh –v
${USER_PRIVATE_KEY}:/root/.host-ssh:ro busybox sh -c 'cp ~/.host-ssh/* ~/.ssh &&
chown -R root:root ~/.ssh && chmod -R 400 ~/.ssh’
docker run –v my-ssh-data:/root/.ssh composer ...
Slide 9
Slide 9 text
Make cli-commands
#!/bin/bash
cd $(dirname "$0")
docker-compose run --rm composer "$@”
#!/bin/bash
cd $(dirname "$0")
docker-compose run --rm php-cli php "$@"