将日志文件从容器复制回主机

时间:2018-06-14 06:52:52

标签: docker

我正在学习docker并制作了一个简单的python3脚本,它从本地文件系统读取CSV>对数据进行一些处理>并写回日志文件。

运行容器时,我能够--mount托管文件,以便在容器中运行的PY脚本能够读取Abel,但是我无法将日志文件表单容器复制回主机系统。 / p>

我的PY脚本如下(为了便于阅读而剥离到最小):

df = pd.read_csv('csvs/file.csv')
print(df)
df.to_csv('logs/log_file.txt', mode = 'a', index=False, header=False)

我执行的运行命令(基于SO中的其他示例)如下:

$docker run --mount 'type=bind,source=/Users/my_name/doc/csvs,destination=/app/csvs' 
image:latest python read_write_test.py cp /app1/logs /Users/my_name/doc/logs

如何修改run命令,以便在容器完成运行脚本后,将日志文件从容器卷复制回主机文件系统。

1 个答案:

答案 0 :(得分:1)

我认为你要找的是音量选项:

foreach (var property in modelBuilder.Model.GetEntityTypes()
    .SelectMany(t => t.GetProperties())
    .Where(p => p.ClrType == typeof(string)))
{
    property.AsProperty().Builder
        .HasMaxLength(256, ConfigurationSource.Convention);
}

这样,卷将在您的主机和容器之间共享,您不需要将其写回,因为您将直接在源上写入。

或者如果你想要一个“in”和“out”文件夹:

$ docker run -v /your/host/shared/folder:/container/shared/folder image:latest python read_write_test.py cp /app1/logs /Users/my_name/doc/logs

另外,在我看来,你的命令应该在你的Dockerfile的CMD中......(或者你有特定的理由这样做吗?)

$ docker run -v /your/host/shared/folder/in:/container/shared/folder/in -v /your/host/shared/folder/out:/container/shared/folder/out image:latest python read_write_test.py cp /app1/logs /Users/my_name/doc/logs

(例如)

相关问题