我在装有Ubuntu操作系统的机器上安装了Docker。
当我跑步时:
sudo docker run hello-world
一切都很好,但是我想隐藏sudo命令以使该命令更短。
如果我写的命令没有sudo
docker run hello-world
显示如下:
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.
当我试图跑步时,同样的情况也会发生:
docker-compose up
我该如何解决这个问题?
Lightdm和kwallet附带了一个bug,在登录时似乎无法通过补充组。为了解决这个问题,除了sudo usermod -aG docker $USER,我还必须注释掉
auth optional pam_kwallet.so
auth optional pam_kwallet5.so
to
#auth optional pam_kwallet.so
#auth optional pam_kwallet5.so
在/etc/pam.D /lightdm重启之前,对于docker-group实际有效果。
Bug: https://bugs.launchpad.net/lightdm/+bug/1781418和这里:https://bugzilla.redhat.com/show_bug.cgi?id=1581495
Docker守护进程绑定到Unix套接字,而不是TCP端口。
默认情况下,Unix套接字由root用户拥有,其他用户只能使用sudo访问它。Docker守护进程始终以根用户运行。
如果不想在docker命令前面加上sudo,可以创建一个名为docker的Unix组,并向其中添加用户。当Docker守护进程启动时,它会创建一个Unix套接字,供Docker组的成员访问。
创建docker组并添加用户:
Create the docker group
sudo groupadd docker
Add your user to the docker group
sudo usermod -aG docker $USER
Log out and log back in so that your group membership is re-evaluated.
If testing on a virtual machine, it may be necessary to restart the virtual machine for changes to take effect.
On a desktop Linux environment such as X Windows, log out of your session completely and then log back in.
On Linux, you can also run the following command to activate the changes to groups:
newgrp docker
Verify that you can run docker commands without sudo. The below command downloads a test image and runs it in a container. When the container runs, it prints an informational message and exits
docker run hello-world
如果您在将用户添加到Docker组之前首先使用sudo运行Docker CLI命令,您可能会看到以下错误,这表明您的~/。由于sudo命令,创建的Docker /目录权限不正确。
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
要解决这个问题,要么删除~/。Docker /目录(它会自动重新创建,但任何自定义设置都将丢失),或使用以下命令更改其所有权和权限:
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
linux上docker的所有其他后期安装步骤都可以在这里找到https://docs.docker.com/engine/install/linux-postinstall/