gpt4 book ai didi

带有 rsync 的 docker-machine

转载 作者:行者123 更新时间:2023-12-02 05:14:19 25 4
gpt4 key购买 nike

我想使用rsync来同步文件夹。 docker-machine 允许使用 -d 选项进行rsync

docker-machine scp -r -d . machine-name:~

这个命令似乎有效,但是,我想将 rsync 的使用扩展到:

rsync -rvz --delete --exclude-from=.rsyncignore -e 'docker-machine ssh machine-name' . :

我还尝试了以下命令:

sshpass -p "tcuser" rsync -rvz --delete --exclude-from=.rsyncignore  . docker@`docker-machine ip machine-name`:

这两个命令都是第一次同步所有内容,但是,一旦所有内容同步,我就无法再访问虚拟机了。如果我尝试通过 docker-machine ssh machine-name 访问虚拟机,我会收到响应退出状态 255。发生了什么事?

最佳答案

您可以找到有关 here 的更多信息

1.-Dockerfile

 FROM centos:6
# install rsync
RUN yum update -y
RUN yum -y install rsync xinetd
# configure rsync
ADD ./rsyncd.conf /root/
RUN sed -i 's/disable[[:space:]]*=[[:space:]]*yes/disable = no/g' /etc/xinetd.d/rsync # enable rsync
RUN cp /root/rsyncd.conf /etc/rsyncd.conf
RUN /etc/rc.d/init.d/xinetd start
RUN chkconfig xinetd on
# create the dir that will be synced
RUN mkdir /home/share
# just to keep the container running
CMD /etc/rc.d/init.d/xinetd start && tail -f /dev/null

2.-在存储库目录中构建容器。

docker build . -t docker-rsync

3.-启动容器并将rsync服务器端口映射到特定主机端口,如

docker run -p 10873:873 docker-rsync

4.-现在我们需要同步我们的共享目录,并在发生任何更改时再次同步任何更改。 Rsync 只会在初始同步后同步更改。

# initial sync
rsync -avP ./share --delete rsync://localhost:10873/example/
# sync on change
fswatch -0 ./share | xargs -0 -n 1 -I {} rsync -avP ./share --delete rsync://localhost:10873/example/

升级:因为docker机器更改内容,虚拟磁盘需要升级

更改 Docker 容器中的文件时的第一个命令:

rsync --ignore-existing --sparse ...

第二个当docker机器在容器稀疏模式下创建新文件时,后面是:

 rsync --inplace ...

关于带有 rsync 的 docker-machine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54992721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com