Some numbers Date
06/09/2014
08/19/2014
Docker
version
1.0
1.1.2
#
of
pulls
2,943,991
13,198,885
+350%
#
of
pushes
105,663
262,435
+150%
#
of
repositories
15,437
29,666
+100%
docker pause & docker unpause • We added the ability to pause a container (freeze the process inside it). • So it’s now safe to commit a running container because it’ll be paused automatically.
docker run --net=container:c1 ubuntu sh \ -c “echo test | nc 127.0.0.1 80” Networking strategies • --net=container: : share the network stack of another container docker run --name c1 ubuntu nc –l 127.0.0.1 80
.dockerignore • Exclude some directories when sending the context the daemon during a build • For example most of the time you could add the .git folder to the .dockerignore https://docs.docker.com/reference/builder/#dockerignore
..and tons of other improvements! • Overall performance and stability • Logs tailing with docker logs --tail • IPv6 support in --dns • Filter client output with docker ps –-filter • docker rm -f now kills container before removal instead of stop. • Testing framework and code coverage https://github.com/docker/docker/blob/master/CHANGELOG.md
Fine grain control over capabilities • Docker defines a whitelist of capabilities, all the other are dropped. • --privileged was introduced to grant access to all the capabilities. • In the release we will introduce --cap-add and --cap-drop
--cap-add/--cap-drop examples • Change the status of the container’s interfaces: • Prevent any chown in the container: • Allow all capabilities but mknod: docker run --cap-add=NET_ADMIN ubuntu sh –c “ip link eth0 down” docker run --cap-drop=CAP_CHOWN ... docker run --cap-add=ALL --cap-drop=MKNOD ...
Adding host devices to a container • You could use add devices by using a bind mount and --privileged . • In the next release we will introduce the --device flag. • To use your sound card without requiring privileged mode: docker run --device=/dev/snd:/dev/snd ...
Restart policies • Restart the container as soon as it exits: docker run --restart=always redis • Restart the container only when it fails, up to 5 times: docker run --restart=on-failure:5 redis • Default if no restart (as today)
Remote volumes • docker run -v /host/path:/container/path on a remote machine, like OSX & boot2docker! • At first using fuse, but could be another “driver” later. https://github.com/bradfitz/docker/tree/fuse
Spawning multiple commands • Spawn a redis server docker run --name redis-master redis • Spawn a bash docker exec -it redis-master bash • Trigger save of the dataset docker exec redis-master redis-cli “save” https://github.com/docker/docker/pull/7409