docker systemd:如何在 systemd 中设置服务时自动启动容器 (BASH)
docker systemd: how i can automatically start a container while setting up a service in systemd (BASH)
我将 运行 一个 docker 带有命令的容器
docker run -ti --rm -p 8080:80 -v $(pwd)/my/path/to/config myimage:latest
但计划是在脚本中编写一个函数,启动这些图像,同时在 systemd 中启动 VM。
我必须在 /lib/systemd/system 中设置服务吗?
在你的Dockerfile
中,在最后添加
ENTRYPOINT service ssh restart && bash
来自 docker 网站的文档,
https://docs.docker.com/config/containers/start-containers-automatically/
您可以使用重启策略,参数是,
使用重启策略
要为容器配置重启策略,请在使用 docker 运行 命令时使用 --restart 标志。 --restart 标志的值可以是以下任何一项:
Flag
说明
no
不要自动重启容器。 (默认)
on-failure
如果容器因错误而退出,则重新启动容器,这表现为 non-zero 退出代码。
always
如果容器停止,请始终重新启动容器。如果手动停止,则只有在 Docker 守护进程重启或容器本身手动重启时才会重启。 (请参阅重启策略详细信息中列出的第二个项目符号)
unless-stopped
与 always 类似,除了当容器停止(手动或其他方式)时,即使 Docker 守护程序重新启动后它也不会重新启动。
如果这些都不能满足您的要求,那么在网页下方有关于您可以使用进程管理器(例如 upstart、systemd 或 supervisor)的信息。
我将 运行 一个 docker 带有命令的容器
docker run -ti --rm -p 8080:80 -v $(pwd)/my/path/to/config myimage:latest
但计划是在脚本中编写一个函数,启动这些图像,同时在 systemd 中启动 VM。
我必须在 /lib/systemd/system 中设置服务吗?
在你的Dockerfile
中,在最后添加
ENTRYPOINT service ssh restart && bash
来自 docker 网站的文档,
https://docs.docker.com/config/containers/start-containers-automatically/
您可以使用重启策略,参数是,
使用重启策略 要为容器配置重启策略,请在使用 docker 运行 命令时使用 --restart 标志。 --restart 标志的值可以是以下任何一项:
Flag
说明
no
不要自动重启容器。 (默认)
on-failure
如果容器因错误而退出,则重新启动容器,这表现为 non-zero 退出代码。
always
如果容器停止,请始终重新启动容器。如果手动停止,则只有在 Docker 守护进程重启或容器本身手动重启时才会重启。 (请参阅重启策略详细信息中列出的第二个项目符号)
unless-stopped
与 always 类似,除了当容器停止(手动或其他方式)时,即使 Docker 守护程序重新启动后它也不会重新启动。
如果这些都不能满足您的要求,那么在网页下方有关于您可以使用进程管理器(例如 upstart、systemd 或 supervisor)的信息。