加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Dropbox在Docker

发布时间:2020-12-16 03:32:19 所属栏目:安全 来源:网络整理
导读:我想在Docker容器中运行Dropbox.这样,我可以通过将数据上传到Dropbox来与docker同步数据.并且还维护数据备份,这在运行新版本的docker图像时将是有用的. 创建了这个简单的Dockerfile FROM phusion/baseimage:0.9.15#Install wgetRUN apt-get update apt-get

我想在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存档同一个目标.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读