Docker端口映射与容器互联
Docker提供了两个功能来满足访问的基本需求:一是允许映射容器内应用的服务端口到本地宿主主机;另一个是互联机制实现多个容器间通过容器名来快速实现访问。
一、端口映射实现访问容器
当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射。当使用-P时,Docker会随机映射一个49000~49900的端口到内部容器开放的网络端口:docker run -d -P training/webapp python app.py
-p可以指定要映射的端口,并且在一个指定端口上只可以绑定一个容器。支持的格式有:
① 映射所有接口地址:HostPort:ContainerPort(多次使用-p标记可以绑定多个端口)
② 映射到指定地址的指定端口:IP:HostPort:ContainerPort
③ 映射到指定地址的任意端口:IP::ContainerPort
可以使用docker port命令来查看当前映射的端口配置和绑定地址。
二、互联机制实现便捷访问
容器的互联会在源和接受容器之间创建连接关系,接收容器可以通过容器名快速访问到源容器,而不用指定具体的IP地址。
使用--link参数可以让容器之间安全地进行交互,格式为--link name:alias。先创建一个新的数据库容器db:
docker run -d --name db training/postgres
再创建一个web容器,并将它连接到db容器:
docker run -d -P --name web --link db:db training/webapp python app.py
使用docker ps查看容器连接,可以看到db容器的names列表有db也有web/db。这表示web容器连接到db容器,允许web容器访问db容器的信息。Docker相当于在两个互联的容器之间创建了一个虚拟通道,而且不用映射它们的端口到宿主主机上在启动db容器时并没有使用-P和-p标记,从而避免了暴露数据库服务端口到外部网络上。
Docker通过两种方式为容器公开连接信息:更新环境变量,更新/etc/hosts文件。
Docker端口映射与容器互联的更多相关文章
- 详解Docker 端口映射与容器互联
详解Docker 端口映射与容器互联 1.端口映射实现访问容器 1.从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内部的网络应用和服务的. 当容器中运行 ...
- docker——端口映射与容器互联
在生产环境中,单个服务往往是独立的,但是服务与服务之间往往是相互依赖的,这样对于容器来说,容器之间就需要相互访问.除了网络访问之外,docker还提供了另外两种方式来满足服务的访问. 一:允许映射容器 ...
- Docker基础-端口映射与容器互联
1.端口映射实现访问容器 1.从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内部的网络应用和服务的. 当容器中运行一些网络应用,要让外部访问这些应用时, ...
- Docker实战(五)之端口映射与容器互联
除了网络访问外,Docker还提供了两个很方便的功能来满足服务访问的基本需求:一个是允许映射容器内应用的服务端口到本地宿主主机;另一个是互联机制实现多个容器间通过容器名来快速访问. 1.端口映射实现访 ...
- docker 实践五:端口映射和容器互联
本篇是关于 docker 容器的端口映射和容器之间的互联内容. 注:环境为 CentOS7,docker 19.03. docker 的容器除了能连接网络外,在许多时候,我们需要让多个容器来协同完成任 ...
- Docker入门之六端口映射与容器互联
一.端口映射 在之前的博客搭建私有仓库时用到这样一句:docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry来r ...
- Docker学习笔记(二):端口映射与容器互联
端口映射 使用docker run时,可以指定-P(大写)与-p(小写)参数映射端口. docker run -P -P(大写)会随机映射一个端口到容器的内部端口 -> [feifei@ffma ...
- docker端口映射和容器互相访问
端口映射 容器运行时如果没有指定端口,与外界是无法通信的,比如当前我们的有一台MySQL的docker container,当前容器正在运行mysql并提供3306端口 # docker ps CON ...
- 【Docker端口映射】
Docker端口映射即将容器内开放的端口映射到宿主机端口,以实现外部网络的访问. 首先,我们先下载用于测试端口映射的镜像: [root@fedora ~]# docker pull training/ ...
随机推荐
- 关于手机ios和安卓和pc的点击事件的兼容
var u = navigator.userAgent, app = navigator.appVersion; var clickEvent; var isAndroid = u.indexOf(' ...
- 一个http请求从用户输入网址开始到结束都发生了什么
一个http请求从用户输入网址开始到结束都发生了什么 一.一个http请求从开始到Django后台,到结束发生了什么 通过用户输入的域名解析出IP地址 TCP/IP 三次握手 进入nginx--- ...
- C语言进阶1-#define和const
宏的命名规范:一般以项目前缀开头,key结尾. #开头表编译. 宏的用法:1.定义常用字符串. 2.定义一段代码. const与宏的区别:1.编译时刻:宏-预编译 const-command+b ...
- Delphi7连接MySql数据库-DBGrid控件显示数据
一个简单的Delphi7小程序,使用MySql数据库做简单查询,用DBGrid控件显示结果,实现过程如下: (1)在MySql中新建demouser表,插入记录用于测试. (2)在Delphi7中新建 ...
- soupUI基础使用方法
SoapUI简介 文章出处:http://www.cnblogs.com/hong-fithing/ SoapUI是一个开源测试工具,通过soap/http来检查.调用.实现Web Service的功 ...
- jQuery-4.动画篇---动画基础隐藏和显示
jQuery中隐藏元素的hide方法 让页面上的元素不可见,一般可以通过设置css的display为none属性.但是通过css直接修改是静态的布局,如果在代码执行的时候,一般是通过js控制元素的st ...
- sparksql错误报No such file or director
今天在非hadoop用户使用sparksql处理insert overwrite table a select b left join c这个句型遇到以下的错误. Error: org.apache. ...
- CentOS 7 / RHEL 7:修改OpenSSH 默认端口
1.备份sshd_config cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.orig.$(date +%F) 2.vi /etc/ssh/sshd_ ...
- android textiew自定义ClickableSpan无效问题
我们有个需求,需要将一段文本中的url跳转,替换成跳转我们app的某个页面.然后就开始搞,先自定义clickspan,在设置LinkMovementMethoid, 但是不管怎么搞就是不生效. 这是我 ...
- tensorflow 调参过程
1. optimizer = tf.train.GradientDescentOptimizer(0.1) 参数小,loss减少的慢:参数大,出现Nan问题 2. optimizer = tf.tra ...