gpt4 book ai didi

Docker 一直说必须是 super 用户

转载 作者:行者123 更新时间:2023-12-02 20:56:23 26 4
gpt4 key购买 nike

我有一个运行 tomcat 的 docker 镜像.每当我部署一个分离的容器并使用 docker exec 登录到容器时,我通常默认以root身份登录。但是,每当我尝试像 mount/umount 这样的命令时,容器外壳不断返回一个错误说 must be superuser这是什么错误,我该如何解决?

最佳答案

即使作为 root,您在 Docker 容器中可以做的事情也是有限的。在 "Runtime privilege and Linux capabilities" in the docker run documentation 下对此进行了一些讨论.在没有额外配置的情况下你不能在容器中做的事情是 安装(8) 额外的文件系统。
但是,一般来说,docker exec 并不是一个好的 Docker 实践。进入容器并开始进行更改。您通常希望进行设置以便可以运行单个 docker run (或 docker-compose up )命令,一切都会自动为您配置。当您开始查看重启策略或集群环境(如 Docker Swarm 或 Kubernetes)时,这一点尤其重要:当您有多个容器副本(可能位于不同主机上)可能会在他们自己的。
Docker 为管理容器中的文件系统提供了一些内置支持,最好使用它:

  • 如果您尝试 mount --bind用于发布日志之类的主机目录,Docker 有自己的 bind mount系统,所以你可以
    docker run -v $PWD/host/directory/path:/container/path ...
  • 如果您尝试为外部存储挂载物理设备,您可以 安装 (8) 在主机上,然后将其绑定(bind)安装到容器中,如上。
  • 或者,您可以手动配置 Docker named volume挂载物理设备。 docker volume create 命令采用扩展选项,可让您手动指定大多数挂载选项,因此您可以
    docker volume create disk --driver local --opt device=/dev/sdX
    docker run -v disk:/container/path ...
  • 如果您需要卸载卷,请停止容器,将其删除,然后用少一个 -v 重新运行它选项。 (像这样停止和重新创建容器以进行配置更改是非常常规的。)
  • 关于Docker 一直说必须是 super 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62773437/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com