Docker开启远程访问的实现方式

 更新时间:2021年01月19日 10:32:07   作者:ITKaven  
这篇文章主要介绍了Docker开启远程访问的实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Docker守护进程套接字

Docker守护进程可以通过三种不同类型的套接字监听Docker Engine API请求:unixtcpfd

默认情况下,在/var/run/docker.sock处创建一个unix域套接字(或IPC套接字),需要root权限或docker组成员身份。

如果需要远程访问Docker守护进程,则需要启用tcp套接字。请注意,默认设置提供了对Docker守护进程的未加密和未经身份验证的直接访问,应该使用内置的HTTPS加密套接字或在其前面放置一个安全的web代理来进行保护。你可以使用-H tcp://0.0.0.0:2375监听所有网络接口上的2375端口,或使用其IP地址-H tcp://ip:2375监听特定网络接口上的2375端口。通常使用端口2375与守护进程进行非加密通信,使用端口2376与守护进程进行加密通信。

注意:如果你使用的是HTTPS加密的套接字,请记住,仅支持TLS1.0及更高版本。出于安全原因,SSLv3及以下版本的协议不再受支持。

修改docker.service

vim /usr/lib/systemd/system/docker.service

[Service]部分,修改ExecStart参数,在最后增加-H tcp://0.0.0.0:2375,监听所有网络接口上的2375端口。

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

在这里插入图片描述

重新加载配置文件和启动服务

systemctl daemon-reload && systemctl restart docker
  • daemon-reload: 重新加载服务的配置文件,要是服务的配置文件发生变化,则需要重新加载
  • restart:重新启动服务。

查看dockerd进程是否正在监听2375端口:

[root@izoq008ryseuupz ~]# netstat -antp | grep dockerd
tcp6    0   0 :::2375         :::*          LISTEN   22494/dockerd    

netstat命令用于显示网络状态,部分选项的作用如下:

  • -a--all:显示所有连线中的Socket。
  • -n--numeric:直接使用IP地址,而不通过域名服务器。
  • -t--tcp:显示TCP传输协议的连线状况。
  • -p--programs:显示正在使用Socket的程序识别码和程序名称。

测试

接下来测试一下通过localhost是否能使用Docker Engine API。

[root@izoq008ryseuupz ~]# curl http://localhost:2375/version
{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"19.03.13","Details":{"ApiVersion":"1.40","Arch":"amd64","BuildTime":"2020-09-16T17:02:21.000000000+00:00","Experimental":"false","GitCommit":"4484c46d9d","GoVersion":"go1.13.15","KernelVersion":"3.10.0-514.26.2.el7.x86_64","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"containerd","Version":"1.3.7","Details":{"GitCommit":"8fba4e9a7d01810a393d5d25a3621dc101981175"}},{"Name":"runc","Version":"1.0.0-rc10","Details":{"GitCommit":"dc9208a3303feef5b3839f4323d9beb36df0a9dd"}},{"Name":"docker-init","Version":"0.18.0","Details":{"GitCommit":"fec3683"}}],"Version":"19.03.13","ApiVersion":"1.40","MinAPIVersion":"1.12","GitCommit":"4484c46d9d","GoVersion":"go1.13.15","Os":"linux","Arch":"amd64","KernelVersion":"3.10.0-514.26.2.el7.x86_64","BuildTime":"2020-09-16T17:02:21.000000000+00:00"}

curl是常用的命令行工具,用来请求Web服务器。不带任何参数时,curl发出GET请求。

很显然可以通过localhost使用Docker Engine API。

再来测试一下远程通过主机IP能否使用Docker Engine API,请求http://ip:2375/version得到的页面如下图所示,很显然是可以的。

在这里插入图片描述

IDEA也是可以进行远程连接的。

在这里插入图片描述

可能的问题

如果远程访问不了,可能需要设置一下服务器的防火墙,应该是2375端口没有暴露出去,所以远程访问不了,博主是阿里云的服务器(Centos7.3)。

在这里插入图片描述

到此这篇关于Docker开启远程访问的实现方式的文章就介绍到这了,更多相关Docker 远程访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Docker中VLAN网络模式的配置

    详解Docker中VLAN网络模式的配置

    在Docker应用到生产环境的时候包括了原生Bridge NAT模式、LinuxBridge VLAN模式以及利用第三方的网络方案这三种,这篇文章给大家详细介绍了Docker中VLAN网络模式的配置,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • docker打包镜像后EasyExcel报错,dockerfile缺少字体的解决

    docker打包镜像后EasyExcel报错,dockerfile缺少字体的解决

    解决Docker打包镜像后EasyExcel报错的问题:1. Dockerfile增加字体配置;2. 使用EasyExcel的write时添加"inMemory"参数为true,开启内存处理模式(不推荐,1W数据以内可以考虑)
    2025-02-02
  • Docker安装Mosquitto的实现示例

    Docker安装Mosquitto的实现示例

    mosquitto是一个常用的MQTT应用服务,本文主要介绍了Docker安装Mosquitto的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • Docker中容器数据卷详解

    Docker中容器数据卷详解

    这篇文章主要介绍了Docker中容器数据卷详解的相关资料,需要的朋友可以参考下
    2022-11-11
  • Docker容器实现SSH远程直连

    Docker容器实现SSH远程直连

    在某些特殊需求下,我们想ssh直接远程连接docker 容器,本文主要介绍了Docker容器实现SSH远程直连,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • 利用docker搭建php7和nginx运行环境全过程(官方镜像)

    利用docker搭建php7和nginx运行环境全过程(官方镜像)

    docker提供了在服务端分布式的部署应用,这样的好处是方便维护和升级。下面这篇文章主要给大家介绍了利用docker搭建php7和nginx运行环境的相关资料,搭建过程中运用的是官方镜像,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-05-05
  • Docker快速部署gitlab+gitlab-runner实例

    Docker快速部署gitlab+gitlab-runner实例

    这篇文章主要介绍了Docker快速部署gitlab+gitlab-runner实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 使用脚本一键打包并上传docker镜像的实现代码

    使用脚本一键打包并上传docker镜像的实现代码

    这篇文章主要介绍了使用脚本一键打包并上传docker镜像的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 虚拟机如何安装指定版本的Docker举例详解

    虚拟机如何安装指定版本的Docker举例详解

    这篇文章主要介绍了虚拟机如何安装指定版本的Docker的相关资料,包括配置yum源、查看可用版本、安装指定版本、卸载旧版本、解决冲突、再次安装以及最后验证安装,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • ubuntu20.04 LTS安装docker的方法步骤

    ubuntu20.04 LTS安装docker的方法步骤

    这篇文章主要介绍了ubuntu20.04 LTS安装docker的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论