.NET Core docker - linux容器。查找我的内置项目的特定文件

问题描述 投票:1回答:2

我使用.NET Core和Docker是Linux容器类型(在Windows 10上构建)。

我运行我的程序在Windows中进行测试,并在Linux中进行生产。

我有一个文本文件:docker中的“sample.txt”。

我想在docker中找到文本文件的确切位置。

我分别使用“docker-compose build”和“docker-compose up”构建并运行了docker。

保持运行(通过我的代码中的一些循环),并打开另一个命令行提示符,然后运行:

docker exec -t -i <DOCKER_ID> /bin/sh

然后运行:

ls /

结果是:

bin boot dev docker-entrypoint.sh等home lib lib64 media mnt opt plugins proc root run sbin srv sys tmp usr var

运行命令:

find . -print | grep -i 'sample.txt'

返回输出:

find: ‘./proc/1/map_files’: Permission denied
find: ‘./proc/105/map_files’: Permission denied
find: ‘./proc/172/map_files’: Permission denied
find: ‘./proc/280/map_files’: Permission denied
find: ‘./proc/321/map_files’: Permission denied
find: ‘./proc/322/map_files’: Permission denied

如何在文件的docker中找到确切位置:“sample.txt”?

(那可以是任何文件)。

另外 - 我可以从docker本身运行docker之外的可执行linux文件吗?

谢谢。

docker .net-core containers
2个回答
0
投票

构建docker镜像时可以看到路径(运行时:'run dotnet publish ...'或'run dotnet build ...'

在docker文件中只需将一个“COPY”命令放到linux路径中。

通常路径是(编译为/ app时):

/应用/运行时/ Linux的X64 /本地

DockerFile中的相关行:

...
RUN dotnet publish MyProj.csproj --no-cache -c Release -o /app
...
COPY MyProj/Objects/MyLib/Linux /app/runtimes/linux-x64/native

-1
投票

首先,您可以使用以下命令:

find / -name sample.txt

如果它位于文件系统中,此命令将搜索所有sample.txt。

对于第二个问题,我将使用映射到主机内特定文件夹的卷到docker容器内的文件夹,然后您可以轻松地转到docker容器中的位置并运行它。

© www.soinside.com 2019 - 2024. All rights reserved.