当前位置: 首页 > 知识库问答 >
问题:

成为docker容器中的根

欧旻
2023-03-14

我在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错误。

共有3个答案

宗意蕴
2023-03-14

解决办法是

sudo docker exec -u 0 -it --workdir / oracle12se /bin/bash
能业
2023-03-14

您可以使用以下方式在docker容器中以root用户身份连接:

docker exec -u 0 -it <container_id> /bin/bash
戚勇
2023-03-14

docker exec-u root-it

输出(如终端所示):

根目录@

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

sudo -i
passwd

或者在一次运行中为root用户设置密码:

sudo passwd root

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

su-

 类似资料:
  • 我在本地机器上运行这个命令docker run-d--name SonarQube-p9000:9000-p9092:9092 SonarQube 这将从dockerhub获取分支的映像,然后创建映像的容器。现在我想对文件进行一些更改,但容器中没有编辑器。我尝试使用apt-get安装vi,但它说我需要是根用户才能执行命令,当我编写sudo时,它说找不到命令。如何在容器中安装编辑器? 我运行这个命令

  • 我有一个Docker composer文件,类似于: 内部测试容器Dockerfile 但是,变量(我希望它是另一个容器的内部IP)不会被转换为另一个容器名称。 怎么能做到呢?用Docker-Compose可以用另一种方式实现吗?

  • 我认为这是因为容器没有JAVA_HOME变量集。我执行了和尝试命令,但它没有显示java可执行文件。此外,java和javac命令不起作用。 有人知道我做错了什么吗?如有任何帮助,不胜感激。提前感谢!

  • 问题内容: 我想知道容器ID的生成方式,因此请提供执行docker run时提供容器ID的源代码? 问题答案: 这是docker守护程序创建容器的代码片段: 因此,创建ID和名称的逻辑是在generateIDAndName函数中: 这是字符串源,具体方法是使用false作为输入参数的generateID: 正如你所看到的,该值是随机与此产生的随机

  • 我用官方dockerfile安装了Oracle数据库。数据库工作,但不清楚如何成为root(我需要安装perl来安装示例模式)。我试过这个: 但是得到: 这是什么意思? 是否有默认root密码?

  • 我不是docker的专家,也许我缺少一些基本配置。有什么想法为什么我不能使用POI?提前道谢。