Dropbox在Docker

前端之家收集整理的这篇文章主要介绍了Dropbox在Docker前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我想在Docker容器中运行DropBox.这样,我可以通过将数据上传到DropBox来与docker同步数据.并且还维护数据备份,这在运行新版本的docker图像时将是有用的.

创建了这个简单的Dockerfile

FROM phusion/baseimage:0.9.15

#Install wget
RUN apt-get update && \
    apt-get -f install && \
    apt-get install -y wget

#Install DropBox
RUN mkdir /usr/local/dropBox && \
    cd /usr/local/dropBox && \
    wget -O - "https://www.dropBox.com/download?plat=lnx.x86_64" | tar xzf -

RUN mkdir /etc/service/dropBox
ADD ./dropBox.sh /etc/service/dropBox/run

# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]

和服务文件dropBox.sh

#!/bin/sh
exec /usr/local/dropBox/.dropBox-dist/dropBoxd

在建立并运行Docker镜像后,DropBox说:
这台电脑没有链接到任何DropBox帐户…

并提供与DropBox帐户关联到当前计算机的链接.
链接后,我看到一个欢迎消息,数据是syncyd里面的/ root / DropBox文件夹.

我提交了docker更改

sudo docker commit `sudo docker ps -l -q` imagename

但是当杀死码头容器并再次运行时DropBox坚持认为:
这台电脑没有链接到任何DropBox帐户…

我确认在容器内,文件夹/ root / DropBox存在,数据在那里,在上一个容器执行期间同步.但是我的容器丢失了到DropBox链接,需要再次链接.

我失踪了什么容器执行之间如何保持DropBox-Docker_container链接

最佳答案
构建并运行Dockerfile后,遇到的第一个问题是runit抱怨丢失的权限.复制服务脚本后,需要添加RUN chmod x / etc / service / dropBox / run.

研究重新启动之间的变化,我发现/root/.dropBox/instance1/hostkeys和/root/.dropBox/instance_db/hostkeys更改.这可能与您使用的Phusion图像有关,尽管我不知道为什么.我的猜测是,这是因为您通过exec运行dropBoxd(因此不使用Bash),每次运行它(=启动容器)时,进程都没有可见的用户文件夹,从哪里可以获得以前的配置.可能,将exec从服务脚本中删除.

但是,您可以使用此示例缩小整个过程(和图像)Dockerfile我鞭打了:

FROM debian:wheezy

RUN \
  apt-get update && \
  apt-get upgrade -y

ADD https://www.dropBox.com/download?plat=lnx.x86_64 /dropBox.tar.gz
RUN tar xfvz /dropBox.tar.gz && rm /dropBox.tar.gz

RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

VOLUME ["/DropBox"]

CMD /.dropBox-dist/dropBoxd

只要运行一次,就可以这样:docker -t -h< HOSTNAME> –name dropBox-auth my-dropBox-image. DropBox链接时复制auth链接和Ctrl-C. < HOSTNAME>可以是更具描述性的标题,以便您可以在DropBox帐户的安全设置中更轻松地找到该标题.

提交:docker commit dropBox-auth dropBox

之后只需运行它:docker run -d –name my-dropBox-container dropBox

由于DropBox在DropBox文件夹中存储有关本身的信息,因此无法更改.但是,您可以在上述所有步骤中使用-v标志(see here)链接到本地​​文件夹(容器外部).这将在Linux上工作100%,在Mac OS X上,它是“有时它有效,有时它不”.

根据您希望在容器中运行DropBox的原因,-v标志(通过将主机文件夹与容器文件夹相链接)可能正是您正在寻找的,可能会使DropBox设置不必要.

奖金提示:如果要访问运行容器中的shell,则从Docker 1.3起,您不再需要SSH.您可以使用docker exec -it< CONTAINER> / bin / bash存档同一个目标.

猜你在找的Docker相关文章