You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用podman-compose挂载NFS卷报错:无法解析服务器问题求助

使用podman-compose挂载NFS卷报错mount.nfs4: Failed to resolve server : Name or service not known的解决方法

环境

  • podman版本:4.9.4-dev
  • podman-compose版本:1.0.6

问题复现

主机终端可正常挂载NFS:

$ mount -t nfs XXX.XXX.XXX.XXX:/mnt/nfs1 /mnt/nfs1
$ mount | grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
XXX.XXX.XXX.XXX:/mnt/nfs1 on /mnt/nfs1 type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=AAA.AAA.AAA.AAA,local_lock=none,addr=XXX.XXX.XXX.XXX)

但使用podman-compose启动容器时挂载失败,docker-compose.yaml内容如下:

version: "3"

services:
  test-nfs:
    image: "registry.access.redhat.com/ubi8/ubi:8.9-1136"
    container_name: "test-nfs"
    network_mode: "host"
    privileged: true
    restart: always
    volumes:
      - nfs1:/mnt/nfs1

volumes:
  nfs1:
    driver: local
    driver_opts:
      type: "nfs"
      o: "addr=XXX.XXX.XXX.XXX"
      device: ":/mnt/nfs1"

执行启动命令后的报错信息:

$ podman-compose -f docker-compose.yaml up
podman-compose version: 1.0.6
['podman', '--version', '']
using podman version: 4.9.4-dev
** excluding:  set()
['podman', 'ps', '--filter', 'label=io.podman.compose.project=root', '-a', '--format', '{{ index .Labels "io.podman.compose.config-hash"}}']
podman volume inspect root_nfs1 || podman volume create root_nfs1
['podman', 'volume', 'inspect', 'root_nfs1']
podman create --name=test-nfs --label io.podman.compose.config-hash=8c0e9bc14a626047910a2c6fa6ad4eda5b6c094c538ae3a33c19656408c35904 --label io.podman.compose.project=root --label io.podman.compose.version=1.0.6 --label PODMAN_SYSTEMD_UNIT=podman-compose@root.service --label com.docker.compose.project=root --label com.docker.compose.project.working_dir=/root --label com.docker.compose.project.config_files=docker-compose.yaml --label com.docker.compose.container-number=1 --label com.docker.compose.service=test-nfs -v root_nfs1:/mnt/nfs1 --network host --privileged --restart always registry.access.redhat.com/ubi8/ubi:8.9-1136
4c0bf4295b8aac36923e78ac26136fb0a5332f989512205fbb15d7c2f173a1e2
exit code: 0
podman start -a test-nfs
Error: unable to start container 4c0bf4295b8aac36923e78ac26136fb0a5332f989512205fbb15d7c2f173a1e2: mounting volume root_nfs1 for container 4c0bf4295b8aac36923e78ac26136fb0a5332f989512205fbb15d7c2f173a1e2: mount.nfs4: Failed to resolve server : Name or service not known

exit code: 125

疑问

  1. 挂载NFS卷还需额外配置吗?
  2. 该问题产生的原因是什么?

解决方案

问题原因

报错显示“Failed to resolve server : Name or service not known”,核心原因是docker-compose.yaml中device配置项缺少NFS服务器IP地址,仅写了":/mnt/nfs1",导致podman无法识别要连接的目标NFS服务器。

解决步骤

修改volumes段的device配置,补充NFS服务器IP,同时可规范o选项的参数(添加NFS版本等信息,与主机挂载参数保持一致):

修改后的docker-compose.yaml:

version: "3"

services:
  test-nfs:
    image: "registry.access.redhat.com/ubi8/ubi:8.9-1136"
    container_name: "test-nfs"
    network_mode: "host"
    privileged: true
    restart: always
    volumes:
      - nfs1:/mnt/nfs1

volumes:
  nfs1:
    driver: local
    driver_opts:
      type: "nfs4"
      o: "addr=XXX.XXX.XXX.XXX,rw,relatime,vers=4.2"
      device: "XXX.XXX.XXX.XXX:/mnt/nfs1"

额外说明

  1. 无需特殊额外配置,但需确保主机已安装nfs-utils(对应发行版的NFS客户端包),podman挂载NFS依赖主机的NFS客户端工具。
  2. 修改配置后,先删除已创建的错误卷:podman volume rm root_nfs1,再重新执行podman-compose up。

内容的提问来源于stack exchange,提问作者TyeolRik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:59:52