我正在学习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
命令,以便在容器完成运行脚本后,将日志文件从容器卷复制回主机文件系统。
答案 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
(例如)