0%

docker远程连接

前言

docker 其实是一个 C/S 程序,执行docker命令行其实就是在与docker daemon服务进行通讯,这里主要是记录下linux下的 docker 如何配置可以被远程访问。

服务端配置

linux上 docker 默认是使用unix socket进行通讯的,如果要远程访问是不支持的,对此需要开启 tcp协议,以支持外部访问。

开启 tcp 协议

  1. 修改/lib/systemd/system/docker.service文件

    1
    vi /lib/systemd/system/docker.service
  2. 找到ExecStart=/usr/bin/dockerd这一行,添加命令行参数-H tcp://0.0.0.0:3272

    1
    2
    3
    4
    5
    6
    [Service]
    Type=notify
    # the default is not to use systemd for cgroups because the delegate issues still
    # exists and systemd currently does not support the cgroup feature set required
    # for containers run by docker
    ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:3272 --containerd=/run/containerd/containerd.sock
  3. 重启 docker

    1
    2
    systemctl daemon-reload
    systemctl restart docker

这样服务端就已经配置好了。

客户端配置

首先需要下载一个 docker 客户端,这是一个非常小的可执行文件,不需要为了一个客户端安装整个 docker 应用。

docker 客户端下载

下载完之后将docker文件加入到PATH中,即可在终端使用了。

远程访问

可以直接使用命令行参数来指定远程 docker 进行访问:

1
docker -H 192.168.1.1:3272 ps

如果不想每次都输入命令行参数,可以配置DOCKER_HOST环境变量,这样每次运行docker命令时,都会自动设定好对应的远程地址。

1
export DOCKER_HOST="tcp://192.168.1.1:3272"

参考

如果觉得本文对您有帮助,可以请我喝一杯咖啡☕