Docker 卷绑定在 Ubuntu Server 22.04 LTS 上不起作用

Docker 卷绑定在 Ubuntu Server 22.04 LTS 上不起作用

我注意到从官方网站下载的 ISO 文件安装的 Ubuntu 22.04 LTS 上的 Docker 卷绑定配置存在问题:https://ubuntu.com/download/server

下面的命令可以重现该问题。

创建一个具有 777 访问权限的新目录和一个测试文件:

mkdir /tmp/ngdata
chmod 777 /tmp/ngdata
touch /tmp/ngdata/created_on_host

接下来,我运行一个带有卷绑定的 Docker 容器:

docker run -v /tmp/ngdata:/ngdata:rw -d nginx

此命令:

docker exec 7dfa35882407 ls /ngdata

不返回任何内容。在容器内执行 touch 会在容器内创建一个文件:

docker exec <conainer hash> touch /ngdata/created_on_docker
docker exec <conainer hash> ls /ngdata

第二条命令返回:created_on_docker。

在主机上运行 ls /tmp/ngdata 返回 created_on_host。

看起来绑定存在问题;容器将文件存储在自己的文件系统上,该系统未与主机绑定。

我在至少两台运行 Ubuntu 22.04 LTS 的计算机上遇到了这个问题,但在运行 Ubuntu 22.04 的 Linode 节点上,一切正常,没有出现上述问题。

您能否指导我检查哪些内容来解决 Ubuntu 服务器上的卷绑定问题?

答案1

我找到了一个解决方案。问题出在 Docker 的 Snap 安装中。删除 Docker 的 Snap 版本并根据官方 Docker 页面的信息进行安装解决了我的问题。

相关内容