Solución:
Si desea que el contenedor se inicie incluso si ningún usuario ha realizado un inicio de sesión (como la VM VirtualBox que solo inicio y no quiero iniciar sesión cada vez). Estos son los pasos que realicé para Ubuntu 16.04 LTS. Como ejemplo, instalé un contenedor de base de datos de Oracle:
$ docker pull alexeiled/docker-oracle-xe-11g
$ docker run -d --name=MYPROJECT_oracle_db --shm-size=2g -p 1521:1521 -p 8080:8080 alexeiled/docker-oracle-xe-11g
$ vim /etc/systemd/system/docker-MYPROJECT-oracle_db.service
y agregue el siguiente contenido:
[Unit]
Description=Redis container
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a MYPROJECT_oracle_db
ExecStop=/usr/bin/docker stop -t 2 MYPROJECT_oracle_db
[Install]
WantedBy=default.target
y habilitar el servicio al inicio
sudo systemctl enable docker-MYPROJECT-oracle_db.service
Para más información https://docs.docker.com/engine/admin/host_integration/
Sí, Docker tiene políticas de reinicio como docker run --restart=always
que se encargará de esto. Esto también está disponible en el archivo de configuración compose.yml como restart: always
.
La política de reinicio predeterminada es no
.
Para el uso de contenedores creados docker update
para actualizar la política de reinicio.
docker update --restart=always 0576df221c0b
0576df221c0b
es el ID del contenedor.