# 配置 Docker 服务

{% hint style="success" %}
为了避免每次使用 Docker 命令时都需要切换到特权身份，可以将当前用户加入**安装中自动创建的 docker 用户组：**

```bash
sudo usermod -aG docker USER_NAME
```

{% endhint %}

Docker 服务启动时实际上是调用了 **dockerd** 命令，支持多种启动参数。因此，用户可以直接通过执行 dockerd 命令来启动 Docker 服务，如下面的命令启动 Docker 服务，开启 Debug 模式，并监听在本地的 2376 端口：

```javascript
dockerd -D -H tcp://127.0.0.1:2376
```

这些选项可以写入 /etc/docker/ 路径下的 **daemon.json** 文件中，由 dockerd 服务启动时读取：

```json
{
    "debug": true,
    "hosts": ["tcp://127.0.0.1:2376"]
}
```

操作系统对 Docker 服务进行了封装：

* Ubuntu：使用 **Upstart** 来管理启动服务，Docke r服务的默认配置文件为 **/etc/default/docker**，可以通过修改其中的 **DOCKER\_OPTS** 来修改服务启动的参数，例如让 Docker 服务开启网络 2375 端口的监听：

  <pre class="language-php" data-overflow="wrap" data-full-width="false"><code class="lang-php">DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
  </code></pre>
* Centos：服务通过 systemd 来管理，配置文件路径为 **/etc/systemd/system/docker.service.d/docker.conf**。更新配置后需要通过 systemctl 命令来管理 Docker 服务：

  ```bash
  sudo systemctl daemon-reload
  sudo systemctl start docker.service
  ```

{% hint style="success" %}
如果服务工作不正常，可以通过查看 Docker 服务的日志信息来确定问题，在 Ubuntu 或 CentOS 系统上可以执行命令 **journalctl -u docker.service**。
{% endhint %}

{% hint style="success" %}
每次重启 Docker 服务后，可以通过查看 Docker 信息（**docker info** 命令），确保服务已经正常运行。
{% endhint %}
