Docker管理指南(1) – 配置和运行Docker

成功安装Docker后,docker daemon以默认配置运行。
在生产环境中,系统管理员通常要根据具体环境来配置docker deamon。大多数情况下,系统管理员会使用如SysVinit, Upstart或systemd来管理docker daemon的启动和停止。

直接运行和配置docker daemon

直接运行docker daemon

docker daemon能直接使用dockerd执行。默认监听unix socket unix:///var/run/docker.sock。

  1. $ dockerd
  2.  
  3. INFO[0000] +job init_networkdriver()
  4. INFO[0000] +job serveapi(unix:///var/run/docker.sock)
  5. INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
  6. ...
  7. ...

直接配置docker daemon

如果你不是使用进程管理器而是直接使用dockerd运行的docker,你就可以在dockerd命令中设置参数来配置docker。
docker daemon一些可用参数如下:
-D, –debug=false:启用或禁用debug模式。默认这个是false。
-H,–host=[]:指定docker daemon监听的socket。
–tls=false:启用或禁用TLS。默认这个是false。
这是个直接在命令行配置docker的示例:

  1. dockerd -D --tls=true --tlscert=/var/docker/server.pem --tlskey=/var/docker/serverkey.pem -H tcp://192.168.59.3:2376

解释如下:

  • 启用了debug模式
  • 设置tls为true并指定服务器证书和私钥
  • 在tcp://192.168.59.3:2376监听
  • daemon调试

    如上所述,我们可以设置日志等级为debug或使用-d启用debug模式来帮助我们获取daemon更详细的信息来查找问题。如果你遇到daemon无响应的情况,可以通过发送SIGUSR1到Docker daemon来强制获取所有线程完整的堆栈跟踪信息到daemon日志文件。通常使用linux系统的kill命令来发送这个信息。例如,kill -USR1

    Ubuntu

    Ubuntu 14.04使用Upstart作为进程管理器。默认情况下,Upstart jobs在/etc/init,docker的Upstart job在/etc/init/docker.conf。
    当docker安装完成后,可以以下面这种方式使用Upstart来检查docker的运行状态:

    1. $ sudo status docker
    2.  
    3. docker start/running, process 989

    运行docker

    你可以使用如下命令来启动/停止/重启docker daemon

    1. $ sudo start docker
    2.  
    3. $ sudo stop docker
    4.  
    5. $ sudo restart docker

    配置docker

    下面是描述在使用upstart作为进程管理器的系统上配置docker daemon。Ubuntu 15.04系统使用了systemd作为它的进程管理器。
    在系统上的/etc/default/docker文件配置docker daemon。在这个文件找到DOCKER_OPTS并配置相关daemon参数。
    配置daemon步骤如下:
    1.登录进你的主机并切换到root权限。
    2.如果系统没有/etc/default/docker文件,先创建,不过应该都有了。
    3.打开这个文件

    1. $ sudo vi /etc/default/docker

    4.把下面的参数添加到DOCKER_OPTS变量。这些参数会在docker daemon运行时附加上去。

    1. DOCKER_OPTS="-D --tls=true --tlscert=/var/docker/server.pem --tlskey=/var/docker/serverkey.pem -H tcp://192.168.59.3:2376"

    5.保存并关闭文件。
    6.重启docker daemon
    $ sudo restart docker

    7.检查docker daemon是否以你所设置的参数运行

    1. ps aux | grep docker | grep -v grep

    日志

    默认下upstart job的日志在/var/log/upstart,docker daemon的日志在/var/log/upstart/docker.log

    1. $ tail -f /var/log/upstart/docker.log
    2.  
    3. INFO[0000] Loading containers: done.
    4. INFO[0000] Docker daemon commit=1b09a95-unsupported graphdriver=aufs version=1.11.0-dev
    5. INFO[0000] +job acceptconnections()
    6. INFO[0000] -job acceptconnections() = OK (0)
    7. INFO[0000] Daemon has completed initialization

    CentOS / Red Hat Enterprise Linux / Fedora

    CentOS/RHEL 7.x和Fedora 21使用systemd作为进程管理器。
    docker安装好后,你可以使用如下命令检查运行状态:

    1. $ sudo systemctl status docker

    运行docker

    使用如下命令启动/停止/重启docker

    1. $ sudo systemctl start docker
    2.  
    3. $ sudo systemctl stop docker
    4.  
    5. $ sudo systemctl restart docker

    设置docker开机启动

    1. $ sudo systemctl enable docker

    配置docker

    此小节我们使用centos 7.x,即使用进程管理器systemd作为示例配置docker。
    1.登录主机并切换到root权限。
    2.创建目录/etc/systemd/system/docker.service.d

    1. $ sudo mkdir /etc/systemd/system/docker.service.d

    3.创建文件/etc/systemd/system/docker.service.d/docker.conf
    4.打开此文件

    1. $ sudo vi /etc/systemd/system/docker.service.d/docker.conf

    5.覆盖docker.service文件中的ExecStart配置项来自定义你的daemon。配置如下:
    [Service]

    1. ExecStart=
    2. ExecStart=/usr/bin/dockerd -H fd:// -D --tls=true --tlscert=/var/docker/server.pem --tlskey=/var/docker/serverkey.pem -H tcp://192.168.59.3:2376

    6.保存关闭文件
    7.应用配置

    1. $ sudo systemctl daemon-reload

    8.重启daemon

    1. $ sudo systemctl restart docker

    9.验证daemon是否以你所设置的参数运行

    1. $ ps aux | grep docker | grep -v grep

    日志

    systemd有它自己的日志系统,称为journal。docker daemon的日志可以使用journalctl -u docker查看

    1. $ sudo journalctl -u docker
    2. May 06 00:22:05 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
    3. May 06 00:22:05 localhost.localdomain docker[2495]:
    4. May 06 00:22:05 localhost.localdomain docker[2495]:
    5. May 06 00:22:06 localhost.localdomain docker[2495]:
    6. May 06 00:22:06 localhost.localdomain docker[2495]:
    7. May 06 00:22:06 localhost.localdomain docker[2495]:
    8. May 06 00:22:06 localhost.localdomain docker[2495]:
    9. May 06 00:22:06 localhost.localdomain docker[2495]:
    10. May 06 00:22:06 localhost.localdomain docker[2495]:
    11. May 06 00:22:06 localhost.localdomain docker[2495]:
    标签:Docker 发布于:2019-11-20 01:25:18