Adding a docker service to boot on Linux
If you want a docker container, or a service that starts docker containers, to startup on a system boot, the correct method is buried in the manual for the command systemctl.
This file is named mediawiki-containers.service, but it shouldn't be confused with any script service files, including the one referred to (mediawiki-containers). This unit file is called a service file because it refers to other kinds of services.
Clearly it must be started after docker is up.
It should then startup on the next reboot.
The system boot technology on GNU/Linux is shifting. Many distros are no longer relying on the Unix System V approach, with the oddly named /etc/init.d directory and the rcX-type 'run control' directories for different run levels.
The move is instead towards systemd and upstart. I'm only talking about systemd here, and the best way to install a service that depends upon docker.
Systemd requires unit files installed, in the proper way, in its /etc/systemd/system directories. Here's an example of a unit file, which starts up the mediawiki containers service mentioned in the previous post:
[Unit] Description=mediawiki-containers After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 WorkingDirectory=/srv/mediawiki-containers ExecStart=/srv/mediawiki-containers/mediawiki-containers start ExecStop=/srv/mediawiki-containers/mediawiki-containers stop [Install] WantedBy=multi-user.target
This file is named mediawiki-containers.service, but it shouldn't be confused with any script service files, including the one referred to (mediawiki-containers). This unit file is called a service file because it refers to other kinds of services.
Clearly it must be started after docker is up.
Now, there's a directive in here to install it to the 'multi-user target'. This is a kind of run-level definition. But it adds to the trickiness of actually installing this.
I'm installing it on Ubuntu Linux 15.10, which has systemd pre-installed.
This unit file was authored by the mediawiki folks, and they put it on your system here: /srv/mediawiki-containers/init/mediawiki-containers.service ...
So all that's needed is to tell systemd about it, using systemctl enable:
# systemctl enable /srv/mediawiki-containers/init/mediawiki-containers.service Created symlink from /etc/systemd/system/multi-user.target.wants/mediawiki-containers.service to /srv/mediawiki-containers/init/mediawiki-containers.service. Created symlink from /etc/systemd/system/mediawiki-containers.service to /srv/mediawiki-containers/init/mediawiki-containers.service. #
It should then startup on the next reboot.