![](/img/trans.png)
[英]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.