如何让系统启动时自动启动Docker容器?
假设我有一个Docker容器,我想运行,然后我可以调用
$ docker run ...
一切都很好 是否有内置的方式来运行一个容器,如果系统崩溃并重新启动,它将自动重新启动?
如果是这样的话,这在Docker Compose中是否也可用?
是的,docker重新启动策略 ,如docker run --restart=always
会处理这个。 这在compose.ymlconfiguration文件中也可以restart: always
。
我希望即使没有用户执行login(如VirtualBox虚拟机,我只启动,不想每次login)启动容器。 以下是我为Ubuntu 16.04 LTS执行的步骤。 作为一个例子,我安装了一个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
并添加以下内容:
[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
并在启动时启用该服务
sudo systemctl enable docker-MYPROJECT-oracle_db.service