本节包含配置Linux主机以更好地与Docker配合使用的可选步骤。
作为非root用户管理Docker
docker守护进程绑定到Unix套接字而不是TCP端口。默认情况下,Unix套接字由用户root拥有,其他用户只能使用sudo访问它。 docker守护程序始终以root用户身份运行。
如果您在使用docker命令时不想使用sudo,请创建一个名为docker的Unix组并将用户添加到该组中。当docker守护进程启动时,它将使docker组可读写的Unix套接字的所有权。
添加一个docker组
sudo groupadd docker
讲用户加入docker组
sudo usermod -aG docker $USER
注销并重新登录,以便重新评估您的组成员资格。
如果在虚拟机上进行测试,则可能需要重新启动虚拟机才能使更改生效。
在桌面Linux环境(如X Windows)上,完全退出会话并重新登录。
确定一下是否真的已经加入到用户组中,重新登陆后可以不用输入sudo
$ docker run hello-world
该命令下载测试图像并将其运行到容器中。当容器运行时,它会打印一条信息消息并退出。
如果您最初在将用户添加到docker组之前使用sudo运行Docker CLI命令,则可能会看到以下错误,这表明您的〜/ .docker /目录是由于sudo命令而使用不正确的权限创建的。
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/$USER/.docker" -R
配置Docker在启动时启动(很多时候不需要操作)
大多数当前的Linux发行版(RHEL,CentOS,Fedora,Ubuntu 16.04和更高版本)使用systemd来管理在系统启动时启动哪些服务。 Ubuntu 14.10及以下版本使用upstart。
systemd
$ sudo systemctl enable docker
取消
$ sudo systemctl disable docker
如果您需要添加HTTP代理,为Docker运行时文件设置不同的目录或分区,或者进行其他自定义,请参阅自定义您的systemd Docker守护程序选项。
upstart
Docker会自动配置为使用upstart在启动时启动。要禁用此行为,请使用以下命令:
$ echo manual | sudo tee /etc/init/docker.override
chkconfig
$ sudo chkconfig docker on
使用不同的存储引擎
有关不同存储引擎的信息,请参阅存储驱动程序。默认的存储引擎和受支持的存储引擎列表取决于您的主机的Linux发行版和可用的内核驱动程序。
配置Docker守护程序侦听连接的位置
默认情况下,Docker守护程序在UNIX套接字上侦听连接。要使Docker能够接受来自远程主机的请求,您可以将其配置为侦听IP地址和端口。它仍然需要在UNIX套接字上侦听,以接受来自本地客户端的请求。
将hosts数组设置在/etc/docker/daemon.json中以连接到UNIX套接字和IP地址,如下所示:
{
"hosts": ["fd://", "tcp://0.0.0.0:2375"]
}
重新启动Docker。通过查找dockerd进程来检查该值是否有用。如果第1步工作,Docker守护进程将显示多个-H标志:
$ sudo ps aux |grep dockerd
如果改了还没有成功,是因为在某些Linux发行版(如RHEL和CentOS)中,/etc/docker/daemon.json文件中的主机密钥被docker.service服务配置文件的内容覆盖。在这种情况下,您需要手动编辑此文件。
sudo systemctl edit docker.service
添加或修改以下行,替换您自己的值。
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
重启
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker.service
更多故障排查 配置请查看官网。
网友评论