【问题标题】:Running docker with host user - bad password?使用主机用户运行 docker - 密码错误?
【发布时间】:2019-01-29 14:47:23
【问题描述】:

经过一些研究,我能够使用我的主机用户运行 docker:

docker run -it \
  -v /etc/passwd:/etc/passwd \
  -v /etc/group:/etc/group \
  -v /etc/sudoers:/etc/sudoers \
  -v $HOME:$HOME \
  --user=$(id -u):$(id -g) \
  ...

我现在的问题是我的密码与主机不同。 (即当我做 su - my-user 我得到错误的密码错误)。

这是有问题的,因为现在用户无法运行 sudo,除非他是无密码的 sudoer。

知道如何解决这个问题吗?

【问题讨论】:

  • 一个是的,没有问题,您是否尝试在需要 root 权限的用户空间中运行 docker 容器?
  • 在 Docker 中通常不需要sudo,它与典型的工作流交互很糟糕,因为通常没有控制终端。在您的 Dockerfile 中指定 USER root(这是默认值),或者从主机使用 -u root-u 0 选项到 docker rundocker exec。还请记住,当您docker rm 容器时,您在容器内所做的任何事情都会丢失:通常不鼓励在正在运行的容器中安装软件和类似的管理任务。

标签: docker


【解决方案1】:

/etc/shadow 保存有关用户密码的信息,因此您也需要挂载它。例如:

sudo docker run --rm -ti \
  -v /etc/passwd:/etc/passwd \
  -v /etc/group:/etc/group \
  -v /etc/sudoers:/etc/sudoers \
  -v /etc/shadow:/etc/shadow \
  -v $HOME:$HOME \
  --user=$(id -u):$(id -g) \
  ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多