挂载卷而不删除文件

时间:2018-08-15 09:22:18

标签: docker docker-compose

我正在尝试使用名为 tmp 的文件夹作为docker容器中的卷,以便执行此操作,我正在使用以下 docker-compose.yml 文件

version: "3"

services:
  master:
    image: singularities/spark
    command: start-spark master
    hostname: master
    ports:
      - "6066:6066"
      - "7070:7070"
      - "8080:8080"
      - "50070:50070"
      - "7077:7077"
    volumes:
      - "../data:/tmp/"
    deploy:
      placement:
        constraints:
          - node.role == manager
  worker:
    image: singularities/spark
    command: start-spark worker master
    environment:
      SPARK_WORKER_CORES: 1
      SPARK_WORKER_MEMORY: 4g
    links:
      - master
    volumes:
      - "../data:/tmp/"

tmp 文件夹以奇点/火花图像存在。运行以下命令后,将删除tmp文件夹下的文件夹和文件。

docker-compose up -d

3 个答案:

答案 0 :(得分:1)

当您执行df = df.loc[:, ['Date', 'indicator_1', 'indicator_2']] idx = df.index df['Date'] = df['Date'].apply(pd.to_datetime) # Sort by column indicator_1 for using df.diff() df.sort_values(['indicator_1'], inplace=True) df['diffs1'] = df['Date'].diff() # Shift 1 then compare with original to get the line that value changes (from x to y for init) mask = df.indicator_1 != df.indicator_1.shift(1) df['diffs1'][mask] = np.nan df.reindex(idx) # Same for case 2 df['indicator_3'] = df['indicator_1'] + df['indicator_2'] df.sort_values(['indicator_3'], inplace=True) df['diffs2'] = df['Date'].diff() mask = df.indicator_3 != df.indicator_3.shift(1) df['diffs2'][mask] = np.nan df.reindex(idx) 时,在创建容器时docker会将您的docker-compose up -d主机目录安装到../data上,这会清理/tmp的图像/容器并放置您拥有的所有内容在主机/tmp内部。

您可能必须选择../data以外的其他容器路径,以确保它具有由/tmp映像创建的数据。

编辑1

singularities/spark命令可以帮助您将文件从FROM / TO主机/容器复制。

您要从图像的docker cp复制到主机,然后将主机复制到/tmp不确定为什么要这样做,这不是建议的且极为罕见的情况

但是,您可以将tmp与命名卷或主机绑定卷一起使用来启动容器并获取数据。在docker run之后,将数据从&到主机或容器复制。

答案 1 :(得分:0)

线索就是名字。 / tmp文件夹在启动时被清除(即在容器启动时)。如果要持久数据,则必须使用其他文件夹名称。

答案 2 :(得分:0)

这仅适用于单个文件

    volumes:
  - "../data/config.properties:/tmp/config.properties"

例如