序言

一个容器提供一个服务,将需要的东西写成dockerfile,然后build成镜像,那么就能一次编译,到处浪啊浪。。。。

容器提供服务,其实和大多数的服务一样,同样也是CS架构的,如下图简略:

客户端主要是使用docker指令,例如docker pull redis;docker info 等命令,此命令会发送至docker daemon执行。

docker daemon可以接收本机的请求也可以接受其他的主机的请求,主要是用来管理镜像,创建,运行,停止容器的操作。

当客户端发送docker pull命令的时候,先从本地仓库查找是否存在镜像文件,如果没有,那么就会去远程仓库查找镜像,查找到后,就会下载到本地仓库中。

docker开启远程服务

1、 修改配置文件

[root@docker-1 ~]# ls -l /etc/sysconfig/docker(配置文件路径)

-rw-r--r--. 1 root root 1301 Dec 25 00:43 /etc/sysconfig/docker

[root@docker-1 ~]# grep -i options /etc/sysconfig/docker(使用-H选项开启需要监听的连接,可以写多个,记得将IP修改为本机的IP地址)

# Modify these options if you want to change the way the docker daemon runs

OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false -H tcp://192.168.1.32:2376 -H unix:///var/run/docker.sock'

2、 查看是否监听

可以看到监听已经在tcp监听和sock本地监听。

3、 验证

在默认不指定连接主机的时候,是使用sock连接,当使用-H 指定主机IP和端口的时候,使用的是tcp方式的连接。也可以直接使用curl进行访问(注意主机名发生了变化,这是在另外一台主机上远程访问docker服务端)。

4、可能出现的问题

如上,当配置文件中仅仅指定了tcp监听端口的时候,默认是不会监听docker.sock,从而在进行docker info的时候,必须要指定主机IP和端口进行tcp连接进行管理。

在其他主机上,进行远程连接的时候,出现报错,no route to host,并不是路由的问题好么。。。骗子。。。。

主要原因是因为防火墙的阻挡,关闭防火墙或者开通2376端口就好了。

centos中默认的服务进程

在这里主要使用centos来进行查看相关的配置文件,但是。。。。在centos中,提供了一些其他的命令,都不知道干啥用的,MMP。。。

当直接使用docker info查看docker服务端信息的时候,当显示无法连接到docker daemon的时候,就表示docker服务端未启动

在安装docker的时候,默认会将这个docker-comon作为依赖进行安装。

对比使用封装之前的命令和封装之后的命令,查看info结构,两者。。。基本是相同的。

启动服务端之后,可以看到打开的经常和监听的端口:

在启动dockerd之后,默认会监听三个unix端口,主要用于直接和本机通信。。。-在netstat中-x表示查看unix端口,在此时,因为仅仅只监听了本机的unix端口,从而远程是不能连接的。

从上面看出centos并不是使用使用dockerd来直接启动的,so。。。

就centos牛逼,非要搞个自己的名字出来,还弄的大小那么大,并不知道为啥。。。。

查看线程的时候,可以看到开启了好几个线程:

docker常用的配置文件路径如下所示:

这些配置文件其实都是用来设置环境变量的,然后统一在docker.service中生效,需要注意的是,如果在多个地方设置了有冲突的变量,那么可能会发生错误,记得在修改之前需要备份。

最后放一张图(在ps的时候可以看到dockerd,containerd,shim,runc):

dockerd也就是docker的引擎,主要用来存储容器的相关信息,并管理大部分的任务。

containerd主要是用来管理容器运行。

shim主要是用来初始化并且处理来自调用者的重新连接。

runc是容器的启停和资源隔离的实现。

docker开放远程服务相关推荐

  1. docker开放容器端口_开放式容器项目及其含义

    docker开放容器端口 昨天,旧金山宣布了开放容器项目 . 这是一个Linux Foundation项目,它将包含使用软件容器的规范和基本运行时软件. 这就是"一件好事". 签署 ...

  2. docker开放3306端口报错

    *执行docker开放3306端口命令 报错 1.执行 sudo firewall-cmd --add-port=3306/tcp 报错 .CentOS7出现"FirewallD is no ...

  3. docker开放的端口_docker容器怎么开端口

    方法一 docker commit <containerid> docker run -p containerid 通过以上命令创建新的镜像文件,run -p参数开放新端口出来:实际使用上 ...

  4. docker开放端口

    参考了文章<win10 Docker 创建Centos7 并使用xshell成功连接>实现了xsheel连接docker,但是docker中的端口在外部不能直接访问.后来搜到简书上的文章& ...

  5. Docker开放2375端口,实现远程访问

    环境 Linux环境:Ubuntu18.04 LTS 补充:我的Linux环境是运行本机的虚拟机上. 因为IDEA集成docker环境,实质上是通过远程访问的形式,进行连接,因此需要开启Docker的 ...

  6. docker开放2375端口设置TLS和CA认证

    最近使用idea的docker插件,这个插件我们可以使用tcp的方式连接,但是这种连接方式非常不安全,开放的2375端口非常容易给人入侵,然后整个docker被人控制,这是非常危险的,所以为了解决这个 ...

  7. docker开放的端口_Docker 开启2375端口,提供外部访问docker

    1.编辑docker.service # vim /usr/lib/systemd/system/docker.service 在 ExecStart=/usr/bin/dockerd-current ...

  8. MacOS Docker开放2375端口

    Mac 不能开启远程 API 服务,在 docker的 issue 中得到了解决方案.可以运行一个 socat 容器,将 unix socket 上的 Docker API 转发到 MacOS 上指定 ...

  9. docker开放的端口_关于docker自动开放端口解决方案

    在docker中只要有容器映射了端口docker就会自动加iptables iptables -L -n Chain DOCKER (8 references) target prot opt sou ...

  10. docker开放的端口_docker-5-解决宿主机没有开放81端口却可以直接访问docker启动的81端口nginx容器的问题...

    我以为经过前面四篇博文的学习,自己对docker的了解最起码入门了,但是当我用docker启动一个81端口的nginx后(宿主机:容器/81:80),在宿主机的firwall防火墙没有添加81端口的情 ...

最新文章

  1. Android学习日记(1)
  2. IOS开发笔记15-自定义类
  3. VC++ 开发pop3收邮件程序的相关问题
  4. 西门子200恒压供水梯形图_求西门子plc200恒压供水编程实例(梯形图)急急急......望高手指点!...
  5. android10位置信息,Android 11 中的位置信息更新
  6. word总积分怎么算计算机,Word文档怎么计算积分
  7. C++:VS2019调试dump文件
  8. oracle批处理还原数据库,用批处理写的:数据库备份还原工具(修正加强版)
  9. 函数式编程,我心中的 C 位!
  10. 口腔取模过程及注意事项_为什么牙齿矫正前要拍片取模,没有拍片取模就设计不了详细方案!...
  11. Vue TodoList案例
  12. 如何使用 Putty 以密钥 private key 的方式登录腾讯云主机
  13. 新网站如何才能被百度快速收录?
  14. [BZOJ1864][CODEVS2462]三色二叉树
  15. matlab求稳定时间ts,一阶方程调节时间ts
  16. PPT画图软件,强烈推荐!提升能力的利器。
  17. POSCMS 域名绑定
  18. 【技能】前端技能列表
  19. 今日头条信息流 - 人群包dmp
  20. 服务器的主要防护手段有哪些

热门文章

  1. NanoPi R2S 专用软件源
  2. 免费P2P穿透通信(4) RDT可靠通信模块测试使用
  3. 手脱FSG压缩壳及问题处理
  4. 《数据结构课程设计》实验预习
  5. VS2017 C++控制台程序不用加pch.h
  6. 1138: C语言合法标识符 C语言
  7. 计算机社团活动照片,电脑绘画兴趣小组活动记录表Word版
  8. 安卓异常java.lang.IllegalStateException: Content has been consumed
  9. rabbitmq报错An unexpected connection driver error occured
  10. python导入mysqldb_Python导入MySQLdb