我想要把容器logger里/var/log目录挂载至宿主机的/home/wallah/var_log目录下,这条命令不对吗?


podman run -d --name logger -v /home/wallah/var_log:/var/log:Z registry.redhat.io/rhel8/rsyslog

实际上我的/home/wallah/var_log目录下还是空的,并没有挂载成功,为什么?

你该关的都关了么,比如selinux什么的

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    答案:

    1. 确保容器中/var/log目录存在,并且有数据写入。

    2. 确保宿主机中/home/wallah/var_log目录不存在,或者如果存在需要备份数据,因为挂载后它会被/var/log目录的数据覆盖。

    3. 使用docker run命令时添加-v参数来挂载目录,例如:

    docker run -v /var/log:/home/wallah/var_log image_name
    

    以上命令中,/var/log是容器中的目录,/home/wallah/var_log是宿主机中的目录。

    1. 确认挂载成功,可以在容器中的/var/log目录中新建一个文件,在宿主机中/home/wallah/var_log目录中查看是否有该文件。

    需要注意的细节:

    1. 确保容器中的/var目录可读可写,运行以下命令来查看:
    docker run -it --rm image_name ls -l / | grep var
    

    如果/var目录的权限不足,可以在Dockerfile中添加以下命令:

    RUN chmod 777 /var
    
    1. 如果宿主机和容器中的操作系统不一致,则建议在宿主机中使用相同的操作系统来挂载目录。

    2. 如果在宿主机中访问挂载的目录时出现权限问题,可以尝试使用sudo命令以root权限进行访问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^