在 docker 容器中成为 root
Posted
技术标签:
【中文标题】在 docker 容器中成为 root【英文标题】:Become root in a docker container 【发布时间】:2019-12-17 14:59:10 【问题描述】:我安装了Oracle Database in a Docker container,但不知道如何成为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,link to docker file
EDIT1:
找到一个 Docker bug。
【问题讨论】:
这能回答你的问题吗? Root password inside a Docker container @banuj 我收到了这个OCI runtime exec failed...
的错误
【参考方案1】:
您可以执行到现有容器中
docker exec -u root -it <container-id> /bin/bash
输出(如终端所示):
root@<container-id>:/#
设置root密码使用这个:
输入以下命令成为root用户并发出密码:
sudo -i
passwd
或者一次性为root用户设置密码:
sudo passwd root
通过输入以下命令测试您的 root 密码:
su -
【讨论】:
有bug,见EDIT1【参考方案2】:您可以使用以下方式在 docker 容器中以 root 身份连接:
docker exec -u 0 -it <container_id> /bin/bash
【讨论】:
我用这个命令得到OCI runtime exec failed: exec failed: container_linux.go:345: starting container...
。【参考方案3】:
解决方法是
sudo docker exec -u 0 -it --workdir / oracle12se /bin/bash
【讨论】:
以上是关于在 docker 容器中成为 root的主要内容,如果未能解决你的问题,请参考以下文章
一行命令安装docker和docker-compose(CentOS7)