本文共 2704 字,大约阅读时间需要 9 分钟。
本节书摘来自异步社区《第一本Docker书(修订版)》一书中的第2章,第2.9节,作者:【澳】James Turnbull(詹姆斯•特恩布尔)著,更多章节内容可以访问云栖社区“异步社区”公众号查看
安装完Docker后,需要确认Docker的守护进程是否运行。Docker以root权限运行它的守护进程,来处理普通用户无法完成的操作(如挂载文件系统)。docker程序是Docker守护进程的客户端程序,同样也需要以root身份运行。用户可以使用docker daemon命令控制Docker守护进程。
注意
在Docker 1.8之前,Docker守护进程是通过-d标志来控制的,而没有docker daemon子命令。当Docker软件包安装完毕后,默认会立即启动Docker守护进程。守护进程监听/var /run/docker.sock这个Unix套接字文件,来获取来自客户端的Docker请求。如果系统中存在名为docker的用户组的话,Docker则会将该套接字文件的所有者设置为该用户组。这样,docker用户组的所有用户都可以直接运行Docker,而无需再使用sudo命令了。警告
前面已经提到,尽管docker用户组方便了Docker的使用,但它毕竟是一个安全隐患。因为docker用户组对Docker具有与root用户相同的权限,所以docker用户组中应该只能添加那些确实需要使用Docker的用户和程序。2.9.1 配置Docker守护进程运行Docker守护进程时,可以用-H标志调整守护进程绑定监听接口的方式。可以使用-H标志指定不同的网络接口和端口配置。例如,要想绑定到网络接口,命令如代码清单2-46所示。
代码清单2-46 修改Docker守护进程的网络
$ sudo docker daemon -H tcp://0.0.0.0:2375
代码清单2-47 使用DOCKER_HOST环境变量
$ export DOCKER_HOST="tcp://0.0.0.0:2375"
代码清单2-48 将Docker守护进程绑定到非默认套接字
$ sudo docker daemon -H unix://home/docker/docker.sock
代码清单2-49 将Docker守护进程绑定到多个地址
$ sudo docker daemon -H tcp://0.0.0.0:2375 -H unix://home/docker/ docker.sock```提示如果你的Docker运行在代理或者公司防火墙之后,也可以使用HTTPS_PROXY、HTTP_ PROXY和NO_PROXY选项来控制守护进程如何连接。还可以使用-D标志来输出Docker守护进程的更详细的信息,如代码清单2-50所示。代码清单2-50 开启Docker守护进程的调试模式``$ sudo docker daemon -D``要想让这些改动永久生效,需要编辑启动配置项。在Ubuntu中,需要编辑/etc /default/docker文件,并修改DOCKER_OPTS变量。在Fedora和Red Hat发布版本中,则需要编辑/usr/lib/systemd/system/ docker. service文件,并修改其中的ExecStart配置项。或者在之后的版本中编辑/etc/ sysconfig/docker文件。注意在其他平台中,可以通过适当的init系统来管理和更新Docker守护进程的启动配置。**2.9.2 检查Docker守护进程是否正在运行**在Ubuntu中,如果Docker是通过软件包安装的话,可以运行Upstart的status命令来检查Docker守护进程是否正在运行,如代码清单2-51所示。代码清单2-51 检查Docker守护进程的状态
$ sudo status docker
docker start/running, process 18147此外,还可以用Upstart的start和stop命令来启动和停止Docker守护进程,如代码清单2-52所示。代码清单2-52 用Upstart启动和停止Docker守护进程
$ sudo stop docker
docker stop/waiting$ sudo start dockerdocker start/running, process 18192在Red Hat和Fedora中,只需要用service命令就可以完成同样的工作,如代码清单2-53所示。代码清单2-53 在Red Hat和Fedora中启动和停止Docker
$ sudo service docker stop
Redirecting to /bin/systemctl stop docker.service$ sudo service docker startRedirecting to /bin/systemctl start docker.service如果守护进程没有运行,执行docker客户端命令时就会出现类似代码清单2-54所示的错误。代码清单2-54 Docker守护进程没有运行的错误
2014/05/18 20:08:32 Cannot connect to the Docker daemon. Is 'docker -d'
running on this host?注意
转载地址:http://kcytx.baihongyu.com/