Ubuntu 16.04 开启 Docker 远程访问

软件版本说明

soft version
OS Ubuntu 16.04
docker 18.06.1-ce
portainer 1.19.2

Docker 远程说明

默认情况下,Docker 通过守护进程 Unix socket (/var/run/docker.sock) 来进行本地进程通信,而不会监听任何端口,因此只能在本地使用 docker客户端 或者使用 Docker API 进行操作。
如果想在其他主机上操作 Docker主机 ,就需要让 Docker守护进程 打开一个 HTTP Socket ,这样才能实现远程通信。

网上找的一些方法

说明 fd:// 相当于 unix:///var/run/docker.sock

  1. 修改 /etc/default/docker 文件的 DOCKER_OPTS ,测试无效。

    1
    DOCKER_OPTS="-H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375"
  2. 修改 /etc/docker/daemon.json ,测试无效。

    1
    2
    3
    {
    "hosts": ["fd://", "tcp://0.0.0.0:2375"]
    }
  3. 修改 /lib/systemd/system/docker.service,测试通过

    1
    ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

    docker_daemon

    重新启动 Docker

    1
    2
    systemctl daemon-reload
    systemctl restart docker.service

    查看本地端口 2375 是否开启

    1
    2
    root@ubuntu:/# netstat -plnt |grep 2375
    tcp6 0 0 :::2375 :::* LISTEN 22615/dockerd

测试

使用另一台 docker 设备进行连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root@ubuntu-virtual-machine:/# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hwdsl2/ipsec-vpn-server latest 11dd0aafd0ff 6 weeks ago 203MB
jenkinsci/blueocean 1.8.2 275adfc8efff 6 weeks ago 443MB
ubuntu 18.04 16508e5c265d 6 weeks ago 84.1MB
jenkins/jenkins lts 74c174cc8e36 7 weeks ago 700MB
sonarqube 7.1 301e57279977 8 weeks ago 803MB
portainer/portainer 1.19.1 6827bc26a94d 2 months ago 58.5MB
gitlab/gitlab-ce 11.1.0-rc14.ce.0 94683ff3204a 2 months ago 1.46GB
jenkins 2.60.3 cd14cecfdb3a 2 months ago 696MB
fcojean/l2tp-ipsec-vpn-server latest c95b26c46285 5 months ago 369MB
mysql 5.7.21 5195076672a7 7 months ago 371MB

root@ubuntu-virtual-machine:/# docker -H 172.16.1.178:2375 images
REPOSITORY TAG IMAGE ID CREATED SIZE
webdevops/php-apache 5.6 5c50b4e67615 18 hours ago 707MB
webdevops/php-apache latest 6b00108124ac 18 hours ago 503MB

Portainer 添加远程 Docker

portainer1
portainer2
portainer3