我对docker很陌生。
我按照这里的指令在docker容器中安装和运行syncthing。
这很好,但当我重新启动PC时,它自动启动了syncthing对接器容器,但是没有.sh文件中的额外设置(没有卷,也没有其他设置)--就像只运行默认设置的容器一样--不会与任何其他设备同步,只有默认共享等等。
当我试图从syncthing_run.sh脚本运行同步时,它抱怨说已经有一个名为syncthing的码头容器在运行,我需要删除或重命名容器,以便使用该名称运行。
通过执行sudo docker stop syncthing来停止已经运行的容器,然后从脚本中移除--name行,我能够让它与所有设置一起再次运行:
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时,我得到:
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的正确名称??
另外,如何删除重复的容器,这样做是否安全而不丢失任何数据?
发布于 2022-11-16 04:18:09
我发现docker run和docker start是不同的。docker run创建并启动一个新容器。
在重新启动之后,我应该做的是sudo docker start syncthing。
再次运行脚本创建了一个新容器。我必须用sudo docker stop 88e447e1cd78停止正在运行的容器,然后用sudo docker rm 88e447e1cd78删除它。
我想在那之后我可以只使用sudo docker start syncthing,但是我也删除了旧容器,然后在重新启用--name行之后再次运行脚本来创建一个新容器。
https://stackoverflow.com/questions/74387539
复制相似问题