成为 docker 容器的 root 用户

Become root in a docker container

提问人:Alexey Starinsky 提问时间:12/17/2019 最后编辑:Alexey Starinsky 更新时间:12/17/2019 访问量:24693

问:

我在 Docker 容器中安装了 Oracle 数据库,但不知道如何成为 root。如果我从主机到这个

sudo docker exec -it -u 0 oracle18se /bin/bash

sudo docker exec -it --user root oracle18se /bin/bash

我得到

OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "chdir to cwd (\"/home/oracle\") set in config.json failed: permission denied": unknown

如果我这样做

sudo docker exec -it oracle18se /bin/bash

从主机,然后

su -

从容器中,它询问root密码,但我不知道。

Hy 主机操作系统是 Ubuntu 18.04,链接到 docker 文件

编辑1:

发现一个 Docker 错误

码头工人

评论

0赞 banuj 12/17/2019
这回答了你的问题吗?Docker 容器内的 root 密码
0赞 Alexey Starinsky 12/17/2019
@banuj我遇到错误OCI runtime exec failed...

答:

7赞 banuj 12/17/2019 #1

您可以使用以下命令在 docker 容器中以 root 身份进行连接:

docker exec -u 0 -it <container_id> /bin/bash

评论

1赞 Alexey Starinsky 12/17/2019
我得到这个命令。OCI runtime exec failed: exec failed: container_linux.go:345: starting container...
2赞 Alexey Starinsky 12/17/2019 #2

解决方法是

sudo docker exec -u 0 -it --workdir / oracle12se /bin/bash
30赞 DUDANF 12/17/2019 #3

可以执行到现有容器中

docker exec -u root -it <container-id> /bin/bash

输出(如终端所示):

root@<container-id>:/#

要设置root密码,请使用:

键入以下命令以成为 root 用户并发出 passwd:

sudo -i
passwd

或者一次性为 root 用户设置密码:

sudo passwd root

通过键入以下命令来测试您的 root 密码:

su -

评论

2赞 Alexey Starinsky 12/17/2019
有bug,见EDIT1
2赞 Pathros 6/8/2022
docker exec -it -u root docker-container_name_1 bash为我工作。谢谢!