[英]Unable to login to SqlServer running in container started via Docker-compose on Ubuntu VM on Azure
[英]How does docker-compose start container on login (ubuntu/systemd)
我在2个docker-compose.yml文件中引用的多个容器中运行多个服务。
/srv/
|
+-- docker-openvpn-data/
| |
| +-- docker-compose.yml
|
+-- docker-svenv.nl-data/
|
+-- docker-compose.yml
这些docker-compose.yml文件在部署时启动(docker docker-compose up
)。
当我的主机重新启动(无人值守的升级)时,我的机器不会再次启动容器, 当我手动启动它们时,所有容器立即启动。
我的主机运行使用systemd的Ubuntu 16.04。
当守护程序启动时,docker守护程序将遵循重新启动策略的设置,因此如果将容器设置为restart: always
在docker-compose.yml中,它们将在启动时启动(当docker守护程序启动时)。 (参见本页第一部分: https : //docs.docker.com/engine/admin/host_integration/ )
当然这需要docker守护进程运行,看起来只有在你登录时才会启动。 这可能意味着docker守护程序服务已设置为在您自己的用户会话中启动。 您可以使用linger来使Ubuntu在启动时生成用户会话,从而启动用户特定的systemd服务,如Docker。
这个命令是loginctl enable-linger username
。
从手册页:
enable-linger [USER...], disable-linger [USER...]
Enable/disable user lingering for one or more users.
If enabled for a specific user, a user manager is spawned
for the user at boot and kept around after logouts.
This allows users who are not logged in to run long-running
services. Takes one or more user names or numeric UIDs
as argument. If no argument is specified, enables/disables
lingering for the user of the session of the caller.
http://manpages.ubuntu.com/manpages/zesty/en/man1/loginctl.1.html
不确定这是否有帮助,但将以下内容放入docker-compose.yml文件中:
https://docs.docker.com/compose/compose-file/#restart
当你在compose文件中有这个时,它会在启动时启动docker容器。 不确定这是否与您的问题有关,因为它不是系统设置而是docker设置。
希望它有所帮助,它可以解决你的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.