Sign inSign up

dothebetter/rsync

By dothebetter

Updated 3 months ago

rsync:3.4.4,支持amd64;arm64v8;arm32v7,ssh+cron+rsync+lsyncd

Image
0

10K+

dothebetter/rsync repository overview

简介:

Static Badge GitHub repo size GitHub Actions Workflow Status
Static Badge Static Badge Docker Image Version Docker Image Size Docker Pulls

自用rsync备份镜像,基础系统为alpine,支持amd64;arm64v8;arm32v7系统。 镜像中ssh、cron、rsync、lsyncd可自由组合使用以分别实现server/client模式。

项目地址:https://github.com/DoTheBetter/docker/tree/master/rsync

官网地址
用法
  1. 作为源端,为server模式,可以选用组合模式:lsyncdlsyncd+ssh或者rsyncrsync+cronrsync+cron+ssh
  2. 作为同步或复制发起端,为client模式,不需要开启守护进程,可以选用组合模式:cron或者cron+ssh
其他说明
  1. root账户使用passwd=$(tr -dc 'A-Za-z0-9!@#$%^&*()' < /dev/urandom | head -c64)在每次启动容器时自动生成64位随机密码。
  2. 修改SSH服务端配置
    • 禁用所有账户的密码登录
    • 限制Root用户仅允许密钥登录
    • 限制最大认证尝试次数为3
    • 禁用端口转发和其他网络功能
    • 禁用DNS反向解析加速连接
    • 设置会话超时(300秒无活动自动断开)
    • 限制并发会话数为5
    • 启用详细日志
  3. 修改SSH客户端配置
    • 自动接受新主机密钥
  4. ssh模式生成密钥类型为ed25519。
  5. 启用cron计划任务时,每隔1分钟检测/conf/crontabs规则变化并在变化时重启crond
  6. 对于修改默认端口的,使用rsync命令同步时,使用--port=8081指定rsync 端口(默认873),使用-e "ssh -p 2022"指定SSH端口。

相关参数:

环境变量

下面是可用于自定义安装的可用选项的完整列表。

变量名是否必须默认值说明
TZ可选Asia/Shanghai设置时区
SSH可选falsessh服务启用开关,true为开,false为关
CRON可选falsecron计划任务启用开关,true为开,false为关
RSYNC可选falsersync daemon守护进程启用开关,true为开,false为关
LSYNCD可选falselysncd daemon守护进程启用开关,true为开,false为关
开放的端口
范围描述
22ssh端口
873rsync 端口
数据卷

下面的目录用于配置,并且可以映射为持久存储。

目录描述
/conf各服务的配置文件夹
/backup备份文件夹

部署方法:

本镜像在docker hub及ghcr.io同步推送,docker hub不能使用时可使用ghcr.io

1. 在源端使用时
Docker Run
docker run -d \
	--name rsync \
	--restart always \
	-e SSH=true \
	-e RSYNC=true \
	-p 8872:22 \
	-p 8873:873 \
	-v /docker/rsync:/conf \
	-v /backup:/backup \
	dothebetter/rsync:latest
	#ghcr.io/dothebetter/rsync:latest
	#registry.cn-hangzhou.aliyuncs.com/dothebetter/rsync:latest
docker-compose.yml
version: '3'
services:
  rsync:
    image: dothebetter/rsync:latest
    #ghcr.io/dothebetter/rsync:latest
    #registry.cn-hangzhou.aliyuncs.com/dothebetter/rsync:latest
    container_name: rsync
    restart: always
    environment:
      - SSH=true
      - RSYNC=true
    ports:
        - "8872:22"
        - "8873:873" #可选
    volumes:
        - /docker/rsync:/conf
        - /backup:/backup
2. 在复制端使用时:只拉取时可以不映射端口
Docker Run
docker run -d \
	--name rsync \
	--restart always \
	-e SSH=true \
	-e CRON=true \
	-v /docker/rsync:/conf \
	-v /backup:/backup \
	dothebetter/rsync:latest
	#ghcr.io/dothebetter/rsync:latest
	#registry.cn-hangzhou.aliyuncs.com/dothebetter/rsync:latest
docker-compose.yml
version: '3'
services:
  rsync:
    image: dothebetter/rsync:latest
    #ghcr.io/dothebetter/rsync:latest
    #registry.cn-hangzhou.aliyuncs.com/dothebetter/rsync:latest
    container_name: rsync
    restart: always
    environment:
      - SSH=true
      - CRON=true
    volumes:
        - /docker/rsync:/conf
        - /backup:/backup

更新日志:

详见 CHANGELOG.md

Tag summary

Content type

Image

Digest

sha256:129f4d675

Size

9.9 MB

Last updated

3 months ago

docker pull dothebetter/rsync