配置docker以放置文件

配置docker以放置文件,docker,Docker,我刚开始接触docker,我运行以下程序: docker pull redis 我得到了一个拒绝许可的错误。事实证明,docker写入/var/*目录,这需要有写入权限。许多其他docker命令也需要类似的内容: sudo docker *** 现在,我真的不喜欢向每个docker命令添加根权限的概念(可能是因为我对docker还不太了解,但对每个程序都是如此)。这是docker的要求吗 如果它不是必需的,那么我如何配置它,使它与其他程序非常相似,它们只在需要时向我请求权限,所有

我刚开始接触docker,我运行以下程序:

docker pull redis  
我得到了一个拒绝许可的错误。事实证明,docker写入
/var/*
目录,这需要有写入权限。许多其他docker命令也需要类似的内容:

sudo docker ***    
现在,我真的不喜欢向每个docker命令添加根权限的概念(可能是因为我对docker还不太了解,但对每个程序都是如此)。这是docker的要求吗

如果它不是必需的,那么我如何配置它,使它与其他程序非常相似,它们只在需要时向我请求权限,所有拉式、运行式命令只会写入我的普通目录或从它们运行,而不是从系统目录运行


编辑:我担心的是,如果docker被允许访问系统文件,也就是说,它有一些嵌入式scipt,对计算机有潜在的危害,并且在我运行docker时执行。因为,我给它根权限,脚本可以做任何事情。将其添加到用户组而不是sudo可以解决这一问题吗?

默认情况下,Docker在您的系统上运行一个需要root权限的始终开启的守护程序(尽管存在实验性的非root Docker支持)

常用的方法是将用户添加到
docker
组,该组允许您运行
docker
,而无需
sudo

如果您对非根Docker感兴趣,以下内容可能会很有趣:


默认情况下,Docker在您的系统上运行一个需要root权限的常开守护程序(尽管存在实验性的非root Docker支持)

常用的方法是将用户添加到
docker
组,该组允许您运行
docker
,而无需
sudo

如果您对非根Docker感兴趣,以下内容可能会很有趣:


您可能不是
docker
用户组的成员。您可以尝试上提到的安装后步骤

创建组docker:

 sudo groupadd docker
将用户添加到组中

sudo usermod -aG docker $USER
重新加载更改:

 newgrp docker 

您可能不是
docker
用户组的成员。您可以尝试上提到的安装后步骤

创建组docker:

 sudo groupadd docker
将用户添加到组中

sudo usermod -aG docker $USER
重新加载更改:

 newgrp docker 


我担心的是,如果docker被允许访问系统文件,也就是说,它有一些嵌入式scipt,对计算机有潜在的危害,并且在我运行docker时执行。因为,我给它根权限,脚本可以做任何事情。将其添加到用户组而不是
sudo
可以解决这个问题吗?不,在这种情况下,您需要运行无根Docker或使用类似Podman的替代方案。是否值得考虑这种潜在危害?如果是,哪一个更好?无根Docker还是Podman?这里很难给出一般性的建议,因为每个安全设置都是独一无二的。我可能会决定这取决于你可以信任多少你可以使用的图像,使用DOCKER(在容器中的代码可以逃脱它在某些设置),因为这是一个更真实的世界攻击向量比码头本身受到损害。选择哪个工具是由您的其他需求定义的。您通常在生产环境中做什么?我关心的是,如果允许docker访问系统文件,这意味着它有一些嵌入式scipt,对计算机有潜在危害,并且在我运行docker时执行。因为,我给它根权限,脚本可以做任何事情。将其添加到用户组而不是
sudo
可以解决这个问题吗?不,在这种情况下,您需要运行无根Docker或使用类似Podman的替代方案。是否值得考虑这种潜在危害?如果是,哪一个更好?无根Docker还是Podman?这里很难给出一般性的建议,因为每个安全设置都是独一无二的。我可能会决定这取决于你可以信任多少你可以使用的图像,使用DOCKER(在容器中的代码可以逃脱它在某些设置),因为这是一个更真实的世界攻击向量比码头本身受到损害。选择哪个工具是由您的其他需求定义的。您通常在生产环境中做什么?我关心的是,如果允许docker访问系统文件,这意味着它有一些嵌入式scipt,对计算机有潜在危害,并且在我运行docker时执行。因为,我给它根权限,脚本可以做任何事情。将它添加到用户组而不是sudo可以解决这个问题吗?默认情况下,当您使用docker时,所有操作都在容器内执行。只要容器具有非根用户,它们就与主机系统非常隔离,并且很少会对主机系统造成任何伤害。用户组比使用sudo要好得多,因为并非所有代码都要求root特权才能正常工作。但是,运行
sudo docker***
。。。这样的命令是否也在容器内运行?我的意思是,看起来这个命令是在主机内部执行的?那个命令是在主机上执行的,是的。Docker应用程序代码的一部分要求根权限起作用,例如为底层容器添加内核功能或访问Unix套接字以使用守护进程。但docker使用的任何外部代码都是在容器上独立执行的。因此,如果您担心Docker作为应用程序本身是有害的,那么您需要rootles Docker,但是您使用Docker的应用程序是隔离的,只要它们有非root用户,并且您在运行它们时小心使用命令。m90下面说,无根Docker是实验性的,它的稳定性如何?值得一试吗?否则我们将面临很多问题?我担心的是,如果docker被允许访问系统文件,也就是说,它有一些对计算机有潜在危害的嵌入式scipt,并且在我运行docker时执行。因为,我给它根权限,脚本可以做任何事情。将其添加到