容器中的root用户和密码

本文翻译于 “Root User and Password Inside a Docker Container”

我们常使用root权限打开docker容器,显然这存在着一定的安全性问题。本文将讨论如何使用non-root用户创建docker镜像,来确保一些资源的安全性。

1
2
3
4
5
FROM ubuntu:16.04
RUN apt-get update 
RUN useradd -m john
USER john
CMD /bin/bash
DOCKER

上面的例子创建了一个非root用户的镜像,正常启动后,进入容器即以john用户身份登录,此时使用包管理器安装软件包则会报出权限不足错误,需要切换至root用户。当你在烦恼切换时提示需要你输入root账户的密码时,有一个简单的方式可以直接以root方式登陆,那就是使用下面的命令。

1
docker exec -it -u 0 container_name bash
SHELL

当然你也可以使用下面的命令

1
docker exec -it -u root container_name bash
SHELL

如果说,你一定要在容器中为非root用户指定特别权限,你也可以安装sudo命令。下面的例子创建了一个非root用户john,并授予其sudo权限

1
2
3
4
5
FROM ubuntu:16.04
RUN apt-get update && apt-get -y install sudo
RUN useradd -m john && echo "john:john" | chpasswd && adduser john sudo
USER john
CMD /bin/bash
DOCKER
Licensed under CC BY-NC-SA 4.0
Last updated on Aug 18, 2024 20:18 CST

请在评论前阅读我们的评论政策


内容是由智能博客生成器生产 powered by ChatGGPTT
Built with Hugo
Theme Stacked designed by Jimmy, modified by Jacob