新安装Ubuntu 18后,我在尝试启动绑定到LVM(ext4)分区的Docker容器时收到以下错误:
mkdir /storage: read-only file system
我试过重新安装操作系统,重新安装Docker,并强制驱动器安装为RW(所有不是Docker的东西都可以写入驱动器)。正在绑定的目录当前设置为777权限。似乎几乎没有此错误的可用信息。
z31licg01#
我有同样的问题,但删除了docker从管理单元和重新安装后,官方docker的步骤。从卡扣中取出对接器
snap remove docker
然后删除docker目录和旧版本
rm -R /var/lib/docker sudo apt-get remove docker docker-engine docker.io
安装官方 Docker :https://docs.docker.com/install/linux/docker-ce/ubuntu/希望这对你有所帮助!
fcy6dtqo2#
2021年1月更新:虽然仍然很酷,但快照并不总是有效。特别是Docker快照,它不适用于Swarm模式,所以我放弃了它和installed Docker the recommended way。快照实际上很酷,IMO,并认为在快照中运行Docker比直接安装在系统上更有益。事实上,你得到一个只读权限错误是一件好事。这意味着一个流氓容器不能在你的基础操作系统上肆虐。也就是说,如何解决你的问题。出现此错误的原因是快照将主机操作系统公开为只读,以便Docker可以查看主机的文件,但不能修改它们(因此出现权限被拒绝错误)。但有一个Docker快照可以写入的目录:/var/snap/docker。实际上,快照可以写入的更好的目录是/home。我为容器创建了/home/docker,以便从主机系统获得持久存储。在您的例子中,您希望/storage可由Docker容器写入。我有一个非常相似的用例,这导致我写了这篇文章。我通过在Docker快照目录/home/docker中挂载存储来解决这个问题;最简单的例子是同一文件系统上的目录:
/var/snap/docker
/home
/home/docker
/storage
mkdir -p /home/docker/<container name>/data
在我的例子中,我在上面的位置创建了一个ZFS数据集,而不是简单地mkdir 'ing一个目录。然后,我运行的容器可以向其写入如下内容:
mkdir
docker run -ti -v /home/docker/<container name>/data:/data [...]
现在您可以两全其美:Docker在包含快照环境和持久存储中运行。🙌🏽
i2byvkas3#
要解决此问题,请使用**--privileged**创建/运行容器:例如:
docker run --privileged -i --name master --hostname k8s-master -d ubuntu:20.04
3条答案
按热度按时间z31licg01#
我有同样的问题,但删除了docker从管理单元和重新安装后,官方docker的步骤。
从卡扣中取出对接器
然后删除docker目录和旧版本
安装官方 Docker :https://docs.docker.com/install/linux/docker-ce/ubuntu/
希望这对你有所帮助!
fcy6dtqo2#
2021年1月更新:虽然仍然很酷,但快照并不总是有效。特别是Docker快照,它不适用于Swarm模式,所以我放弃了它和installed Docker the recommended way。
快照实际上很酷,IMO,并认为在快照中运行Docker比直接安装在系统上更有益。事实上,你得到一个只读权限错误是一件好事。这意味着一个流氓容器不能在你的基础操作系统上肆虐。也就是说,如何解决你的问题。
出现此错误的原因是快照将主机操作系统公开为只读,以便Docker可以查看主机的文件,但不能修改它们(因此出现权限被拒绝错误)。但有一个Docker快照可以写入的目录:
/var/snap/docker
。实际上,快照可以写入的更好的目录是/home
。我为容器创建了/home/docker
,以便从主机系统获得持久存储。在您的例子中,您希望
/storage
可由Docker容器写入。我有一个非常相似的用例,这导致我写了这篇文章。我通过在Docker快照目录/home/docker
中挂载存储来解决这个问题;最简单的例子是同一文件系统上的目录:在我的例子中,我在上面的位置创建了一个ZFS数据集,而不是简单地
mkdir
'ing一个目录。然后,我运行的容器可以向其写入如下内容:
现在您可以两全其美:Docker在包含快照环境和持久存储中运行。🙌🏽
i2byvkas3#
要解决此问题,请使用**--privileged**创建/运行容器:
例如: