Docker 如何将卷从主机装载到容器

Docker 如何将卷从主机装载到容器,docker,dockerfile,Docker,Dockerfile,我正在windows 10中使用docker,希望将日志从docker容器输出到主机D:/Test 这是我的日志配置: public class HomeController : Controller { private readonly ILogger<HomeController> _logger; public HomeController(ILogger<HomeController> logger) { _logger =

我正在windows 10中使用docker,希望将日志从docker容器输出到主机D:/Test

这是我的日志配置:

public class HomeController : Controller
{
    private readonly ILogger<HomeController> _logger;
    public HomeController(ILogger<HomeController> logger)
    {
        _logger = logger;
    }
    public IActionResult Index()
    {
        _logger.LogError("Access Denied!!!");
        return View();
    }
运行docker inspect dockercoreapp10后,我可以看到挂载


我可以访问http://localhost:8081/,但未在D:\Test下创建日志文件

您使用的是什么类型的容器

执行run命令后,日志文件是否存在于容器的另一侧,位于正确的位置/app/logs

我已尝试重新创建您的问题,但使用您的run命令,我没有问题

日志记录的东西不重要。。。您可以将任何内容放在容器中的app/logs文件夹中进行测试,它应该显示在您已装载的文件夹中。在我这边,我进入app/logs文件夹并运行

touch test.txt 
另一边出现test.txt,没有问题


在容器中查找文件夹。手动将一个文件放入其中,然后检查它是否显示在另一侧。反之亦然。我的猜测是,在执行run命令之后,您实际上没有在app/logs文件夹中放置任何日志。

您使用的是什么类型的容器

执行run命令后,日志文件是否存在于容器的另一侧,位于正确的位置/app/logs

我已尝试重新创建您的问题,但使用您的run命令,我没有问题

日志记录的东西不重要。。。您可以将任何内容放在容器中的app/logs文件夹中进行测试,它应该显示在您已装载的文件夹中。在我这边,我进入app/logs文件夹并运行

touch test.txt 
另一边出现test.txt,没有问题


在容器中查找文件夹。手动将一个文件放入其中,然后检查它是否显示在另一侧。反之亦然。我的猜测是,在执行run命令之后,您实际上没有在app/logs文件夹中放置任何日志。

我正在使用linux容器。如何切换到container来运行touch test.txt?您已经有了第一个部分,即标记,它应该将您带到容器内的交互式终端,但您还应该在命令的末尾有bin/bash。或者,在已经运行的容器上,使用docker exec命令。我可以看到test.txt文件,但我不确定为什么我的日志文件没有创建。那么这不是装载的问题,这是代码的问题,但是您将日志文件放在了正确的位置。无论您试图创建什么日志文件,都不会到达正确的位置。当我开始时,让我困惑的是linux目录结构以及它在容器中的外观。尝试使用查找来查看日志文件是否在您的容器中的某个位置,但是,我认为您现在遇到的问题是“在哪里输出我的日志”而不是“为什么装载不起作用”谢谢,linux容器文件路径区分大小写,我需要将/app/logs更改为/app/LogsI我正在使用linux容器。如何切换到container来运行touch test.txt?您已经有了第一个部分,即标记,它应该将您带到容器内的交互式终端,但您还应该在命令的末尾有bin/bash。或者,在已经运行的容器上,使用docker exec命令。我可以看到test.txt文件,但我不确定为什么我的日志文件没有创建。那么这不是装载的问题,这是代码的问题,但是您将日志文件放在了正确的位置。无论您试图创建什么日志文件,都不会到达正确的位置。当我开始时,让我困惑的是linux目录结构以及它在容器中的外观。尝试使用查找来查看日志文件是否在您的容器中的某个位置,但是,我认为您现在遇到的问题是“在哪里输出我的日志”而不是“为什么装载不起作用”谢谢,linux容器文件路径区分大小写,我需要将/app/logs更改为/app/logs