在Docker容器中成为root用户

19

我在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 -

从容器中,它要求输入根密码,但我不知道它是什么。

我的主机操作系统是Ubuntu 18.04,链接到Docker文件

编辑1:

发现一个Docker错误


这个回答解决了你的问题吗?Docker容器中的root密码 - banuj
@banuj 我使用这个命令出现了一个错误:“OCI runtime exec failed...” - Alexey Starinsky
3个回答

30

您可以进入现有的容器

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

输出(在终端上看到):

root@<container-id>:/#

要设置根密码,请使用以下命令:

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

sudo -i
passwd

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

sudo passwd root

通过输入以下命令来测试 root 密码:

su -


2
有一个错误,请查看EDIT1。 - Alexey Starinsky
2
docker exec -it -u root docker-container_name_1 bash 对我有用。谢谢! - Pathros

7
您可以使用以下方式在 Docker 容器中连接为 root 用户:
docker exec -u 0 -it <container_id> /bin/bash

1
我使用这个命令时出现了 OCI runtime exec failed: exec failed: container_linux.go:345: starting container... 的错误。 - Alexey Starinsky

2

解决方法是

sudo docker exec -u 0 -it --workdir / oracle12se /bin/bash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接