我注意到从官方网站下载的 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 页面的信息进行安装解决了我的问题。
跟着卸载指南。
然后Docker 安装指南。