docker.conf 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. description "Docker daemon"
  2. start on (filesystem and net-device-up IFACE!=lo)
  3. stop on runlevel [!2345]
  4. limit nofile 524288 1048576
  5. # Having non-zero limits causes performance problems due to accounting overhead
  6. # in the kernel. We recommend using cgroups to do container-local accounting.
  7. limit nproc unlimited unlimited
  8. respawn
  9. kill timeout 20
  10. pre-start script
  11. # see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
  12. if grep -v '^#' /etc/fstab | grep -q cgroup \
  13. || [ ! -e /proc/cgroups ] \
  14. || [ ! -d /sys/fs/cgroup ]; then
  15. exit 0
  16. fi
  17. if ! mountpoint -q /sys/fs/cgroup; then
  18. mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
  19. fi
  20. (
  21. cd /sys/fs/cgroup
  22. for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
  23. mkdir -p $sys
  24. if ! mountpoint -q $sys; then
  25. if ! mount -n -t cgroup -o $sys cgroup $sys; then
  26. rmdir $sys || true
  27. fi
  28. fi
  29. done
  30. )
  31. end script
  32. script
  33. # modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)
  34. DOCKERD=/usr/bin/dockerd
  35. DOCKER_OPTS=
  36. if [ -f /etc/default/$UPSTART_JOB ]; then
  37. . /etc/default/$UPSTART_JOB
  38. fi
  39. exec "$DOCKERD" $DOCKER_OPTS --raw-logs
  40. end script
  41. # Don't emit "started" event until docker.sock is ready.
  42. # See https://github.com/docker/docker/issues/6647
  43. post-start script
  44. DOCKER_OPTS=
  45. DOCKER_SOCKET=
  46. if [ -f /etc/default/$UPSTART_JOB ]; then
  47. . /etc/default/$UPSTART_JOB
  48. fi
  49. if ! printf "%s" "$DOCKER_OPTS" | grep -qE -e '-H|--host'; then
  50. DOCKER_SOCKET=/var/run/docker.sock
  51. else
  52. DOCKER_SOCKET=$(printf "%s" "$DOCKER_OPTS" | grep -oP -e '(-H|--host)\W*unix://\K(\S+)' | sed 1q)
  53. fi
  54. if [ -n "$DOCKER_SOCKET" ]; then
  55. while ! [ -e "$DOCKER_SOCKET" ]; do
  56. initctl status $UPSTART_JOB | grep -qE "(stop|respawn)/" && exit 1
  57. echo "Waiting for $DOCKER_SOCKET"
  58. sleep 0.1
  59. done
  60. echo "$DOCKER_SOCKET is up"
  61. fi
  62. end script