我的EC2实例上的var / run / docker.sock权限问题

时间:2020-01-12 07:15:07

标签: docker jenkins

我已经在我的EC2实例上安装了docker和jenkins。但是,每次我重新启动服务器时,都必须运行以下命令:

chmod 666 var/run/docker.sock

如何在实例重新启动之间保留var/run/docker.sock文件的权限?

1 个答案:

答案 0 :(得分:0)

您真的需要这样做吗?

在我上面的评论之后。您不应手动运行这种命令,而应让守护程序自行管理套接字文件的权限。

此外,这可能表明您以普通用户身份运行docker命令时遇到权限错误。解决此问题的最佳做法是将相关用户添加到docker组中,以便他们可以访问守护程序

sudo usermod -a -G docker myUser

如果您仍然确实需要更改套接字权限。

话虽如此,您可以直接回答您的确切问题,并且可以更改守护程序在启动时将使用的套接字权限。

以下解决方案适用于由systemd管理的守护程序(如果使用其他守护程序,则适用于特定的init系统)。 警告:此类权限将允许系统上的任何用户与docker守护程序通信

  1. 为systemd的自定义docker socket配置创建目录
    sudo mkdir /etc/systemd/system/docker.socker.d
    
  2. 使用自定义套接字模式在该目录中创建一个conf文件
    cat <<EOF | sudo tee /etc/systemd/system/docker.socker.d/socketPerms.conf
    > [Socket]
    > SocketMode=0666
    > EOF
    
  3. 重新加载systemctl守护程序以捕获配置更改
    sudo systemctl daemon-reload
    
  4. 重新启动docker服务
    sudo systemctl restart docker.service
    
相关问题