docker开放远程服务
一个容器提供一个服务,将需要的东西写成dockerfile,然后build成镜像,那么就能一次编译,到处浪啊浪。。。。
容器提供服务,其实和大多数的服务一样,同样也是CS架构的,如下图简略:
客户端主要是使用docker指令,例如docker pull redis;docker info 等命令,此命令会发送至docker daemon执行。
docker daemon可以接收本机的请求也可以接受其他的主机的请求,主要是用来管理镜像,创建,运行,停止容器的操作。
当客户端发送docker pull命令的时候,先从本地仓库查找是否存在镜像文件,如果没有,那么就会去远程仓库查找镜像,查找到后,就会下载到本地仓库中。
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中,提供了一些其他的命令,都不知道干啥用的,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开放远程服务相关推荐
- docker开放容器端口_开放式容器项目及其含义
docker开放容器端口 昨天,旧金山宣布了开放容器项目 . 这是一个Linux Foundation项目,它将包含使用软件容器的规范和基本运行时软件. 这就是"一件好事". 签署 ...
- docker开放3306端口报错
*执行docker开放3306端口命令 报错 1.执行 sudo firewall-cmd --add-port=3306/tcp 报错 .CentOS7出现"FirewallD is no ...
- docker开放的端口_docker容器怎么开端口
方法一 docker commit <containerid> docker run -p containerid 通过以上命令创建新的镜像文件,run -p参数开放新端口出来:实际使用上 ...
- docker开放端口
参考了文章<win10 Docker 创建Centos7 并使用xshell成功连接>实现了xsheel连接docker,但是docker中的端口在外部不能直接访问.后来搜到简书上的文章& ...
- Docker开放2375端口,实现远程访问
环境 Linux环境:Ubuntu18.04 LTS 补充:我的Linux环境是运行本机的虚拟机上. 因为IDEA集成docker环境,实质上是通过远程访问的形式,进行连接,因此需要开启Docker的 ...
- docker开放2375端口设置TLS和CA认证
最近使用idea的docker插件,这个插件我们可以使用tcp的方式连接,但是这种连接方式非常不安全,开放的2375端口非常容易给人入侵,然后整个docker被人控制,这是非常危险的,所以为了解决这个 ...
- docker开放的端口_Docker 开启2375端口,提供外部访问docker
1.编辑docker.service # vim /usr/lib/systemd/system/docker.service 在 ExecStart=/usr/bin/dockerd-current ...
- MacOS Docker开放2375端口
Mac 不能开启远程 API 服务,在 docker的 issue 中得到了解决方案.可以运行一个 socat 容器,将 unix socket 上的 Docker API 转发到 MacOS 上指定 ...
- docker开放的端口_关于docker自动开放端口解决方案
在docker中只要有容器映射了端口docker就会自动加iptables iptables -L -n Chain DOCKER (8 references) target prot opt sou ...
- docker开放的端口_docker-5-解决宿主机没有开放81端口却可以直接访问docker启动的81端口nginx容器的问题...
我以为经过前面四篇博文的学习,自己对docker的了解最起码入门了,但是当我用docker启动一个81端口的nginx后(宿主机:容器/81:80),在宿主机的firwall防火墙没有添加81端口的情 ...
最新文章
- Android学习日记(1)
- IOS开发笔记15-自定义类
- VC++ 开发pop3收邮件程序的相关问题
- 西门子200恒压供水梯形图_求西门子plc200恒压供水编程实例(梯形图)急急急......望高手指点!...
- android10位置信息,Android 11 中的位置信息更新
- word总积分怎么算计算机,Word文档怎么计算积分
- C++:VS2019调试dump文件
- oracle批处理还原数据库,用批处理写的:数据库备份还原工具(修正加强版)
- 函数式编程,我心中的 C 位!
- 口腔取模过程及注意事项_为什么牙齿矫正前要拍片取模,没有拍片取模就设计不了详细方案!...
- Vue TodoList案例
- 如何使用 Putty 以密钥 private key 的方式登录腾讯云主机
- 新网站如何才能被百度快速收录?
- [BZOJ1864][CODEVS2462]三色二叉树
- matlab求稳定时间ts,一阶方程调节时间ts
- PPT画图软件,强烈推荐!提升能力的利器。
- POSCMS 域名绑定
- 【技能】前端技能列表
- 今日头条信息流 - 人群包dmp
- 服务器的主要防护手段有哪些
热门文章
- NanoPi R2S 专用软件源
- 免费P2P穿透通信(4) RDT可靠通信模块测试使用
- 手脱FSG压缩壳及问题处理
- 《数据结构课程设计》实验预习
- VS2017 C++控制台程序不用加pch.h
- 1138: C语言合法标识符 C语言
- 计算机社团活动照片,电脑绘画兴趣小组活动记录表Word版
- 安卓异常java.lang.IllegalStateException: Content has been consumed
- rabbitmq报错An unexpected connection driver error occured
- python导入mysqldb_Python导入MySQLdb