docker pull linuxserver/syncthing
LinuxServer.io团队为您带来了另一个容器版本,其中包含:
定期及时更新应用程序
简单的用户映射(PGID、PUID)
带有 s6 覆盖层的自定义基础镜像
每周更新基础操作系统,并在整个 LinuxServer.io 生态系统中使用通用层,以最大程度地减少空间使用、停机时间和带宽
定期安全更新
找到我们:
博客- 您可以使用我们的容器做的所有事情,包括操作指南、意见等等!
Discord - 与社区和团队实时支持/聊天。
话语- 在我们的社区论坛上发帖。
Fleet - 一个在线网络界面,显示我们维护的所有图像。
GitHub - 查看我们所有存储库的源代码。
开放集体- 请考虑通过捐赠或贡献我们的预算来帮助我们
linux服务器/同步
Syncthing用开放、值得信赖和去中心化的服务取代了专有的同步和云服务。您的数据只是您的数据,您应该选择数据的存储位置、是否与第三方共享以及如何通过互联网传输。
支持的架构
我们利用 docker 清单来实现多平台感知。更多信息可从此处的docker 和此处的公告获得。
只需拉动lscr.io/linuxserver/syncthing:latest即可检索拱门的正确图像,但您也可以通过标签拉动特定的拱门图像。
该镜像支持的架构有:
建筑学 | 可用的 | 标签 |
|---|---|---|
x86-64 | ✅ | amd64-<版本标签> |
ARM64 | ✅ | arm64v8-<版本标签> |
臂氢夫 | ❌ |
应用程序设置
注意: Syncthing 开发人员强烈建议为此容器设置密码,因为它侦听 0.0.0.0。为此,请转至Actions -> Settings -> set user/passwordWebUI。
用法
以下是一些示例片段,可帮助您开始创建容器。
docker-compose(推荐,点击此处了解更多信息)
---
version: "2.1"
services:
syncthing:
image: lscr.io/linuxserver/syncthing:latest
container_name: syncthing
hostname: syncthing #optional
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- /path/to/appdata/config:/config
- /path/to/data1:/data1
- /path/to/data2:/data2
ports:
- 8384:8384
- 22000:22000/tcp
- 22000:22000/udp
- 21027:21027/udp
restart: unless-stopped
docker cli(点击此处了解更多信息)
docker run -d \
--name=syncthing \
--hostname=syncthing `#optional` \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-p 8384:8384 \
-p 22000:22000/tcp \
-p 22000:22000/udp \
-p 21027:21027/udp \
-v /path/to/appdata/config:/config \
-v /path/to/data1:/data1 \
-v /path/to/data2:/data2 \
--restart unless-stopped \
lscr.io/linuxserver/syncthing:latest
参数
容器镜像是使用运行时传递的参数(如上面的参数)进行配置的。这些参数用冒号分隔并<external>:<internal>分别表示。例如,-p 8080:80将公开容器内部的端口,以便可以从容器外部80端口上的主机 IP 进行访问。8080
范围 | 功能 |
|---|---|
| 可以选择定义主机名。 |
| 应用程序网络用户界面 |
| 监听端口(TCP) |
| 监听端口(UDP) |
| 协议发现 |
| 对于 UserID - 请参阅下面的说明 |
| 对于 GroupID - 请参阅下面的说明 |
| 指定要使用的时区,请参阅此列表。 |
| 配置文件。 |
| 数据1 |
| 数据2 |
文件中的环境变量(Docker 秘密)
您可以使用特殊的 prepend 从文件中设置任何环境变量FILE__。
举个例子:
-e FILE__PASSWORD=/run/secrets/mysecretpassword
PASSWORD将根据文件的内容设置环境变量/run/secrets/mysecretpassword。
用于运行应用程序的 Umask
对于我们的所有镜像,我们提供了使用可选设置覆盖容器内启动的服务的默认 umask 设置的功能-e UMASK=022。请记住,umask 不是 chmod,它根据它不添加的值从权限中减去。在寻求支持之前,请先阅读此处。
用户/组标识符
当使用卷(-v标志)时,主机操作系统和容器之间可能会出现权限问题,我们通过允许您指定用户PUID和组来避免此问题PGID。
确保主机上的所有卷目录都属于您指定的同一用户,并且任何权限问题都会像魔术一样消失。
在这种情况PUID=1000下PGID=1000,要找到您的使用方式,id user如下所示:
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
Docker 模组
我们发布了各种Docker Mod以在容器内启用附加功能。可通过上面的动态徽章访问该图像可用的 Mod 列表(如果有)以及可应用于我们任何一个图像的通用 Mod。
支持信息
容器运行时的 shell 访问:
docker exec -it syncthing /bin/bash实时监控容器的日志:
docker logs -f syncthing容器版本号
docker inspect -f '{{ index .Config.Labels "build_version" }}' syncthing
镜像版本号
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/syncthing:latest
更新信息
我们的大多数图像都是静态的、版本化的,并且需要图像更新和容器重新创建来更新内部的应用程序。除了一些例外(即 nextcloud、plex),我们不建议或支持更新容器内的应用程序。请参阅上面的“应用程序设置”部分,了解是否建议将其用于图像。
以下是更新容器的说明:
通过 Docker 撰写
更新所有图像:
docker-compose pull或更新单个图像:
docker-compose pull syncthing
让 compose 根据需要更新所有容器:
docker-compose up -d或更新单个容器:
docker-compose up -d syncthing
您还可以删除旧的悬空图像:
docker image prune
通过 Docker 运行
更新图像:
docker pull lscr.io/linuxserver/syncthing:latest停止正在运行的容器:
docker stop syncthing删除容器:
docker rm syncthing按照上面的说明,使用相同的 docker 运行参数重新创建一个新容器(如果正确映射到主机文件夹,您的
/config文件夹和设置将被保留)您还可以删除旧的悬空图像:
docker image prune
通过 Watchtower 自动更新程序(仅在您不记得原始参数时使用)
在其标签处拉取最新镜像,并在一次运行中将其替换为相同的环境变量:
docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --run-once syncthing您还可以删除旧的悬空图像:
docker image prune
注意:我们不认可使用 Watchtower 作为现有 Docker 容器自动更新的解决方案。事实上,我们通常不鼓励自动更新。然而,这是一个有用的工具,可以在您忘记原始参数的情况下一次性手动更新容器。从长远来看,我们强烈建议使用Docker Compose。
镜像更新通知 - Diun(Docker 镜像更新通知程序)
我们推荐Diun来获取更新通知。不推荐也不支持其他在无人值守的情况下自动更新容器的工具。
本地建设
如果您想出于开发目的或只是为了自定义逻辑而对这些图像进行本地修改:
git clone https://github.com/linuxserver/docker-syncthing.git
cd docker-syncthing
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/syncthing:latest .
ARM 变体可以使用以下命令在 x86_64 硬件上构建multiarch/qemu-user-static
docker run --rm --privileged multiarch/qemu-user-static:register --reset
注册后,您可以定义要与-f Dockerfile.aarch64.
版本
05.09.23: - 重新调整至 Alpine 3.18。
01.07.23: - 弃用 armhf。正如此处宣布的
13.02.23: - 重新设置为 Alpine 3.17,迁移到 s6v3。
22.08.17: - 在 alpine 3.16 上构建 go 1.18)。
03.05.22: - 重新设置为 alpine 3.15(在 go 1.18 的边缘构建)。
05.10.21: - 重新设置为高山 3.14。
12.05.21: - 再次删除 sysctl 参数
03.05.21: - 提高最大 UDP 缓冲区大小。
03.05.21: - 添加 22000/udp 的端口映射。
29.01.21: - 弃用
UMASK_SET基础映像中的 UMASK,请参阅上文了解更多信息。23.01.21: - 重新调整为 alpine 3.13。
15.09.20: - 使用 go from alpine edge repo 进行编译。删除重复的 UMASK 环境变量。添加主机名设置。
01.06.20: - 重新调整为 alpine 3.12。
19.12.19: - 重新调整为 alpine 3.11。
28.06.19: - 重新调整为 alpine 3.10。
2019 年 3 月 23 日: - 切换到新的基础镜像,切换到 arm32v7 标签。
2019 年 3 月 5 日: - 更新 v1.1.0 版本的构建流程。
22.02.19: - 重新调整为 alpine 3.9。
19.01.19: - 添加管道逻辑和多架构。
2018 年 7 月 30 日: - 重新设置为 alpine 3.8 并使用 buildstage。
13.12.17: - 重新设置为高山 3.7。
25.10.17: - 添加环境变量以手动设置 umask。
29.07.17: - 简化构建结构,因为符号链接在 > 0.14.32 上失败
2017 年 5 月 28 日: - 重新设置为 alpine 3.6。
2017 年 2 月 8 日: - 重新设置为 alpine 3.5。
01.11.16: - 切换到从 git 源编译最新版本。
14.10.16: - 添加版本层信息。
2016 年 9 月 30 日: - 修复 umask。
2016 年 9 月 9 日: - 将图层徽章添加到自述文件中。
2016 年 8 月 28 日: - 将徽章添加到自述文件中。
2016 年 8 月 11 日: - 重新设置为 alpine linux。
2015 年 12 月 18 日: - 初始测试/发布 (IronicBadger)
2015 年 9 月 24 日: - 初始开发完成(Lonix)

评论区