Docker HowTo Auto Start Containers On Reboot
An explanation for systemd as a process manager can be found at :
https://docs.docker.com/engine/admin/host_integration/
Once you are happy with your docker images and container, you must us systemd to restart them.
- Go to the directory :
/etc/systemd/system
This directory contains all .service files that are used to start docker containers.
- Check what docker services are enabled on start up
systemctl list-unit-files | grep docker
This will list out all the services that are enabled.
- To create a new service called docker-[containername].service :
sudo vi /etc/systemd/system/docker-[containername].service
add the contents similar to the following, but change Description ExecStart ExecStop
:
[Unit]
Description=Redcap 6.16.8 container
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker run -v /share:/share -itd -p 82:80 lcbruit/redcap_upgrade:v6.16.8
ExecStop=/usr/bin/docker stop -t 2 lcbruit/redcap_upgrade:v6.16.8
[Install]
WantedBy=default.target
- If you have a new container build modify the content of this file.
- To activate the service run the following commands (rename service name) :
systemctl daemon-reload
systemctl start docker-redcap_6.16.8.service
systemctl enable docker-redcap_6.16.8.service
- To disable a service run the following commands (rename service name) :
systemctl stop docker-redcap_6.16.8.service
systemctl disable docker-redcap_6.16.8.service
- Change will only come to effect on a reboot
sudo reboot