Last active
August 29, 2015 14:01
-
-
Save tkuchiki/92883bfebff1ff189db8 to your computer and use it in GitHub Desktop.
Docker files for Ubuntu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Docker Upstart and SysVinit configuration file | |
# Customize location of Docker binary (especially for development testing). | |
#DOCKER="/usr/local/bin/docker" | |
# Use DOCKER_OPTS to modify the daemon startup options. | |
#DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4" | |
# If you need Docker to use an HTTP proxy, it can also be specified here. | |
#export http_proxy="http://127.0.0.1:3128/" | |
# This is also a handy place to tweak where Docker's temporary files go. | |
#export TMPDIR="/mnt/bigdrive/docker-tmp" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
description "Docker daemon" | |
start on filesystem | |
stop on runlevel [!2345] | |
respawn | |
pre-start script | |
# see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount | |
if grep -v '^#' /etc/fstab | grep -q cgroup \ | |
|| [ ! -e /proc/cgroups ] \ | |
|| [ ! -d /sys/fs/cgroup ]; then | |
exit 0 | |
fi | |
if ! mountpoint -q /sys/fs/cgroup; then | |
mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup | |
fi | |
( | |
cd /sys/fs/cgroup | |
for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do | |
mkdir -p $sys | |
if ! mountpoint -q $sys; then | |
if ! mount -n -t cgroup -o $sys cgroup $sys; then | |
rmdir $sys || true | |
fi | |
fi | |
done | |
) | |
end script | |
script | |
# modify these in /etc/default/$UPSTART_JOB (/etc/default/docker) | |
DOCKER=/usr/local/bin/$UPSTART_JOB | |
DOCKER_OPTS= | |
if [ -f /etc/default/$UPSTART_JOB ]; then | |
. /etc/default/$UPSTART_JOB | |
fi | |
"${DOCKER:-/usr/bin/$UPSTART_JOB}" -d $DOCKER_OPTS | |
end script |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
### BEGIN INIT INFO | |
# Provides: docker | |
# Required-Start: $syslog $remote_fs | |
# Required-Stop: $syslog $remote_fs | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: Create lightweight, portable, self-sufficient containers. | |
# Description: | |
# Docker is an open-source project to easily create lightweight, portable, | |
# self-sufficient containers from any application. The same container that a | |
# developer builds and tests on a laptop can run at scale, in production, on | |
# VMs, bare metal, OpenStack clusters, public clouds and more. | |
### END INIT INFO | |
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin | |
BASE=$(basename $0) | |
# modify these in /etc/default/$BASE (/etc/default/docker) | |
DOCKER=/usr/bin/$BASE | |
DOCKER_PIDFILE=/var/run/$BASE.pid | |
DOCKER_LOGFILE=/var/log/$BASE.log | |
DOCKER_OPTS= | |
DOCKER_DESC="Docker" | |
# Get lsb functions | |
. /lib/lsb/init-functions | |
if [ -f /etc/default/$BASE ]; then | |
. /etc/default/$BASE | |
fi | |
# see also init_is_upstart in /lib/lsb/init-functions (which isn't available in Ubuntu 12.04, or we'd use it) | |
if [ -x /sbin/initctl ] && /sbin/initctl version 2>/dev/null | grep -q upstart; then | |
log_failure_msg "$DOCKER_DESC is managed via upstart, try using service $BASE $1" | |
exit 1 | |
fi | |
# Check docker is present | |
if [ ! -x $DOCKER ]; then | |
log_failure_msg "$DOCKER not present or not executable" | |
exit 1 | |
fi | |
fail_unless_root() { | |
if [ "$(id -u)" != '0' ]; then | |
log_failure_msg "$DOCKER_DESC must be run as root" | |
exit 1 | |
fi | |
} | |
cgroupfs_mount() { | |
# see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount | |
if grep -v '^#' /etc/fstab | grep -q cgroup \ | |
|| [ ! -e /proc/cgroups ] \ | |
|| [ ! -d /sys/fs/cgroup ]; then | |
return | |
fi | |
if ! mountpoint -q /sys/fs/cgroup; then | |
mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup | |
fi | |
( | |
cd /sys/fs/cgroup | |
for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do | |
mkdir -p $sys | |
if ! mountpoint -q $sys; then | |
if ! mount -n -t cgroup -o $sys cgroup $sys; then | |
rmdir $sys || true | |
fi | |
fi | |
done | |
) | |
} | |
case "$1" in | |
start) | |
fail_unless_root | |
cgroupfs_mount | |
touch "$DOCKER_LOGFILE" | |
chgrp docker "$DOCKER_LOGFILE" | |
log_begin_msg "Starting $DOCKER_DESC: $BASE" | |
start-stop-daemon --start --background \ | |
--no-close \ | |
--exec "$DOCKER" \ | |
--pidfile "$DOCKER_PIDFILE" \ | |
-- \ | |
-d -p "$DOCKER_PIDFILE" \ | |
$DOCKER_OPTS \ | |
>> "$DOCKER_LOGFILE" 2>&1 | |
log_end_msg $? | |
;; | |
stop) | |
fail_unless_root | |
log_begin_msg "Stopping $DOCKER_DESC: $BASE" | |
start-stop-daemon --stop --pidfile "$DOCKER_PIDFILE" | |
log_end_msg $? | |
;; | |
restart) | |
fail_unless_root | |
docker_pid=`cat "$DOCKER_PIDFILE" 2>/dev/null` | |
[ -n "$docker_pid" ] \ | |
&& ps -p $docker_pid > /dev/null 2>&1 \ | |
&& $0 stop | |
$0 start | |
;; | |
force-reload) | |
fail_unless_root | |
$0 restart | |
;; | |
status) | |
status_of_proc -p "$DOCKER_PIDFILE" "$DOCKER" docker | |
;; | |
*) | |
echo "Usage: $0 {start|stop|restart|status}" | |
exit 1 | |
;; | |
esac | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment