
Docker-Unison是一个使用Unison的Docker卷容器,用于实现快速双向文件夹同步。该镜像旨在替代OS X上速度较慢的boot2docker卷,解决本地开发环境中文件同步效率低下的问题。
Docker镜像可在Docker Hub获取:https://registry.hub.docker.com/u/leighmcculloch/unison/
volumes_from与其他容器共享同步卷1. 启动Unison卷容器
首先启动一个暴露Unison卷的容器:
bash$ CID=$(docker run -d -p 5000:5000 -e UNISON_WORKING_DIR=/unison -v /unison leighmcculloch/unison:latest)
2. 同步本地文件夹到容器
使用Unison客户端将本地文件夹同步到容器内的/unison目录:
bash$ unison . socket://<docker>:5000/ -auto -batch
注:
<docker>需替换为Docker主机的IP地址或域名
3. 连接卷到其他容器
启动一个使用该同步卷的容器:
bash$ docker run -it --volumes-from $CID ubuntu /bin/sh
在Docker Compose管理的开发环境中,可使用volumes_from指令挂载Unison卷。
docker-compose.yml配置示例
yamlmywebserver: build: . volumes_from: - unison unison: image: leighmcculloch/unison:latest environment: - UNISON_WORKING_DIR=/unison volumes: - /unison ports: - "5000:5000"
同步命令
使用Unison客户端同步本地文件夹:
bash$ unison . socket://<docker>:5000/ -ignore 'Path .git' -auto -batch
自动同步配置
结合fswatch实现文件变更自动同步:
bash$ fswatch -o . | xargs -n1 -I{} unison . socket://<docker>:5000/ -ignore 'Path .git' -auto -batch
Unison要求客户端(运行在主机)和服务器(运行在容器)版本必须匹配。支持的版本组合:
apt-get install unison安装,基于OCaml 4.01编译)brew install unison安装,基于OCaml 4.03编译)若从源码安装Unison,可通过ocaml --version查看编译时使用的OCaml版本。
该Docker仓库包含多种Unison服务器版本,编译自不同OCaml版本。可通过选择适当标签的镜像来匹配客户端版本。镜像标签格式:
VERSION-[unisonUNISON_VERSION[-OCAML_VERSION]]
支持的版本组合:
如需其他版本,可通过Issue请求添加。
| Docker镜像标签 | Unison版本 | OCaml版本 |
|---|---|---|
leighmcculloch/unison:latest | 2.48.4 | 4.03 |
leighmcculloch/unison:latest-unison2.48.4-ocaml4.03 | 2.48.4 | 4.03 |
leighmcculloch/unison:latest-unison2.48.4-ocaml4.02 | 2.48.4 | 4.02 |
leighmcculloch/unison:latest-unison2.48.4-ocaml4.01 | 2.48.4 | 4.01 |
leighmcculloch/unison:latest-unison2.48.3-ocaml4.03 | 2.48.3 | 4.03 |
leighmcculloch/unison:latest-unison2.48.3-ocaml4.02 | 2.48.3 | 4.02 |
leighmcculloch/unison:latest-unison2.48.3-ocaml4.01 | 2.48.3 | 4.01 |
leighmcculloch/unison:latest-unison2.40.102-ocaml4.03 | 2.40.102 | 4.03 |
leighmcculloch/unison:latest-unison2.40.102-ocaml4.02 | 2.40.102 | 4.02 |
leighmcculloch/unison:latest-unison2.40.102-ocaml4.01 | 2.40.102 | 4.01 |
brew install fswatch本Docker镜像基于GPLv3许可证,因Unison使用GPLv3许可证并包含在镜像中。详见LICENSE。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务