.NET核心docker-linux容器。查找生成项目的特定文件
我正在使用.NETCore和docker,docker是在Windows10上构建的Linux容器类型 我在Windows中运行程序进行测试,并在Linux中进行生产 我在docker中有一个文本文件:sample.txt 我想在docker中找到文本文件的确切位置 我分别使用docker compose build和docker compose up构建并运行docker 通过代码中的某个循环使其运行,并打开另一个命令行提示符,然后运行:.NET核心docker-linux容器。查找生成项目的特定文件,docker,.net-core,containers,Docker,.net Core,Containers,我正在使用.NETCore和docker,docker是在Windows10上构建的Linux容器类型 我在Windows中运行程序进行测试,并在Linux中进行生产 我在docker中有一个文本文件:sample.txt 我想在docker中找到文本文件的确切位置 我分别使用docker compose build和docker compose up构建并运行docker 通过代码中的某个循环使其运行,并打开另一个命令行提示符,然后运行: docker exec -t -i <DOCKE
docker exec -t -i <DOCKER_ID> /bin/sh
结果是:
bin boot dev docker-entrypoint.sh etc home lib lib64媒体
mnt opt plugins proc root运行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文件吗
谢谢。首先,您可以使用以下命令:
find / -name sample.txt
如果sample.txt位于文件系统中,此命令将搜索所有sample.txt
对于第二个问题,我将使用一个卷,该卷映射到主机中的特定文件夹,并映射到docker容器中的文件夹,之后,您可以轻松地转到docker容器中的位置并运行它。在运行时构建docker映像时可以看到路径:“运行dotnet发布…”或“运行dotnet构建…” 在docker文件中,只需将COPY命令放入linux路径 通常,路径是编译到/app时的路径: /app/runtimes/linux-x64/native DockerFile中的相关行:
...
RUN dotnet publish MyProj.csproj --no-cache -c Release -o /app
...
COPY MyProj/Objects/MyLib/Linux /app/runtimes/linux-x64/native
...
RUN dotnet publish MyProj.csproj --no-cache -c Release -o /app
...
COPY MyProj/Objects/MyLib/Linux /app/runtimes/linux-x64/native