我正在尝试使用名为 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
答案 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"
例如