[英]docker-machine with rsync
我想使用rsync
來同步文件夾。 docker-machine
允許使用-d option
進行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`:
兩個命令都是第一次同步所有內容,但是,一旦所有內容同步,我就無法再訪問VM了。 如果我嘗試通過docker-machine ssh machine-name
訪問VM, docker-machine ssh machine-name
收到響應exit status 255
。 怎么了?
你可以在這里找到更多相關信息
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 ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.