首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过正确的设置使同步停靠容器在重新启动时自动启动

如何通过正确的设置使同步停靠容器在重新启动时自动启动
EN

Stack Overflow用户
提问于 2022-11-10 10:33:11
回答 1查看 27关注 0票数 0

我对docker很陌生。

我按照这里的指令在docker容器中安装和运行syncthing

这很好,但当我重新启动PC时,它自动启动了syncthing对接器容器,但是没有.sh文件中的额外设置(没有卷,也没有其他设置)--就像只运行默认设置的容器一样--不会与任何其他设备同步,只有默认共享等等。

当我试图从syncthing_run.sh脚本运行同步时,它抱怨说已经有一个名为syncthing的码头容器在运行,我需要删除或重命名容器,以便使用该名称运行。

通过执行sudo docker stop syncthing来停止已经运行的容器,然后从脚本中移除--name行,我能够让它与所有设置一起再次运行:

代码语言:javascript
复制
IDu=$(id -u $(logname)) # Saves the logged in user id in the IDu variable
IDg=$(id -g $(logname)) # Saves the logged in user group in the IDg variable

docker run -d \
 --name syncthing \   # <------------- removed this line
 --hostname=syncthing-redacted \
 --network=host \
 -v $PWD/st-sync/:/var/syncthing/ \
 -v $PWD/data/:/var/syncthing/data/ \
 -v /redacted/:/var/syncthing/redacted/ \
 -e TZ="Australia/Sydney" \
 -e PUID=$IDu \
 -e PGID=$IDg \
 --restart=unless-stopped \
syncthing/syncthing:latest

然后运行sudo ~/docker/syncthing/syncthing_run.sh

它现在似乎运行良好,但我认为它已经创建了一个新的容器?当我运行sudo docker container ls -a | grep syncthing时,我得到:

代码语言:javascript
复制
88e447e1cd78   syncthing/syncthing:latest      "/bin/entrypoint.sh …"   27 minutes ago      Up 27 minutes (healthy)
7dd04d0701a7   syncthing/syncthing:latest      "/bin/entrypoint.sh …"   12 days ago         Exited (0) 34 minutes ago

如何修复所有内容,以便容器在启动时自动运行,但使用.sh脚本中的正确设置和syncthing的正确名称??

另外,如何删除重复的容器,这样做是否安全而不丢失任何数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-16 04:18:09

我发现docker rundocker start是不同的。docker run创建并启动一个新容器。

在重新启动之后,我应该做的是sudo docker start syncthing

再次运行脚本创建了一个新容器。我必须用sudo docker stop 88e447e1cd78停止正在运行的容器,然后用sudo docker rm 88e447e1cd78删除它。

我想在那之后我可以只使用sudo docker start syncthing,但是我也删除了旧容器,然后在重新启用--name行之后再次运行脚本来创建一个新容器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74387539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档