我有两个Linux用户,分别为:ubuntu和my_user 现在,我构建一个简单的Docker映像并运行Docker容器 在我的docker-compose.yml文件中,我将某些文件从本地计算机批量挂载到了由“ ubuntu”用户创建的文件中。
现在,如果我通过“ my_user”登录,并使用docker exec命令访问由“ ubuntu”用户创建的docker容器,那么我将能够访问该容器中存在的所有文件。
我的要求是限制对“ my_user”的访问,以访问由“ ubuntu”用户创建的Docker容器的内容。
答案 0 :(得分:1)
目前尚无法实现。如果您的用户可以执行Docker命令,则实际上意味着该用户具有root特权,因此无法阻止该用户访问任何文件。
答案 1 :(得分:0)
您可以添加“ ro”,意思是仅在数据量大之后读取。像这样
HOST:CONTAINER:ro
或者您可以在docker-compose.yml中添加ReadOnly属性
这是一个示例如何在docker-compose中指定只读容器:
答案 2 :(得分:0)
@surabhi,只有一个选项可以通过在docker-compose文件中添加字段来限制文件访问。
read_only: flag to set the volume as read-only
nocopy: flag to disable copying of data from a container when a volume is created
您可以找到更多信息here
答案 3 :(得分:0)
您可以在该容器中安装并运行sshd,将端口22映射到可用的主机端口,并通过ssh密钥管理用户的可访问性。 这将不允许用户通过docker命令管理事物,但将使该用户有权访问该容器。