簡體   English   中英

具有rsync的docker-machine

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM