Docker 快速上手系列(5): 网络基础配置和容期间通信

引子

一个web服务跑起来必不可少的两大功能模块:业务处理,数据服务,大型的web服务需要的组件更多,这往往需要多个容器,但是我们还需要这些容器之间可以进行网络通信,相互配合。

Dokcer目前只支持宿主机与容器通信,容器与容器之间通信。


宿主机与容器的端口映射

在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。

当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-p或-p参数来制定端口映射。当使用-p标记时,Docker会随机映射一个49000~49900的端口至容器内部开发的网络端口:

    #不知道为什么这里我-P后容器并没有映射端口,但是官方上的样例就可以。

第二种方法是给容器制定端口映射关系:

同时映射多个映射关系:

指定地址的端口映射:

映射指定地址的任意一个端口:


容器与容器的端口映射

容器的连接系统是除了端口映射外另一种可以与容器中应用进行交互的方式。它会在源和接收容器之间创建一个隧道,接受容器可以看到容器指定的信息

自定义容器名字

连接系统依据容器的名称来执行。因此,首先需要自定义一个好记的容器名字。

虽然当创建容器的时候,系统默认会分配一个名字,但自定义命名容器有两个好处:

1.自定义命名比较好记,比如一个web应用容器,我们可以给它起名叫web

2.当要连接其他容器时候,可以作为一个有用的参考,比如连接web容器到db容器。

使用–name标记可以为容器自定义命名:

docker run -d -P -name web ubuntu:nodejs

也可以使用docker inspect 来查看容器的名字:

docker inspect -f "{{.Name}}" CONTAINER_ID

使用–link参数可以让容器之间安全的进行交互:

docker run -d -P --name web --link db:db ubuntu:nodejs

–link参数的格式为–link name:alias,其中name是要连接的容器的名称,alias是这个连接的别名。

时间: 2024-11-03 21:30:59

Docker 快速上手系列(5): 网络基础配置和容期间通信的相关文章

docker数据卷管理及网络基础配置

数据卷 数据卷容器 数据卷迁移数据 端口映射 容器间通信 数据卷的管理 当需要查看容器内应用产生的数据或者把容器内数据备份及多个容器数据共享.有两种方式,数据卷以及数据卷容器. 数据卷 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,特性如下: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新不会影响镜像 卷会一直存在,直到没有容器使用 其使用类似与mount操作. 在容器内创建一个数据卷 #docker run -d -P --name web -v /webapp

Docker 快速上手系列(3): 仓库的概念及相关操作

Docker Hub 首先我们先区分下两个概念,一个是仓库,一个是注册服务器. Docker里仓库是集中存放镜像的地方,而注册服务器是放仓库的, 一个注册服务器可以存放多个仓库,例如: dl.dockerpool.com/ubuntu #注册服务器的地址是dl.dockerpool.com #仓库的名字是ubuntu 什么是Docker Hub,如果你用过Github,其实Docker Hub和Github 类似,前者是存放管理镜像的地方,后者是存放管理代码的地方.其实 现的方式是一样的. 可以

Docker 快速上手系列(2): 容器的概念及相关操作

什么是容器 简单的说,一个镜像想要跑起来需要一个载体,这个载体就是容器,前面的文章我们也提到了,容器加载镜像后会启动一个额外的可写文件层. 我们拿VM举例,VM虚拟的是整个操作系统,然后可以在里面跑引用,容器其实运行的是一个应用或是一组应用,并提供应用所必须的运行环境 创建一个容器 Docker启动一个容器是秒级别的,这也是比VM有有事的一点,所以这里允许用户随时创建,删除,启动,切换容器,这也是体现Docker"轻"的一点 #启动一个容器有两种情况 #第1种是基于镜像创建一个容器并启

Docker 快速上手系列(4): 数据卷,数据卷容器的概念及相关操作

引子 有些时候,我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: 数据卷 数据卷容器 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性: - 数据卷可以在容器之间共享和重用 - 对数据卷的修改会立马生效 - 对数据卷的更新,不会影响镜像 - 卷会一直存在,直到没有容器使用 #(类似linux下的挂载(mount)) 创建数据卷 在用Docker ru

Microsoft Azure 快速上手系列(繁体中文视频)

Microsoft Azure 快速上手系列 https://channel9.msdn.com/Series/Microsoft-Azure-Quickstart 视频可能没法直接看,不过可以下载mp4 只做优秀知识的搬运工

8.Linux网络基础配置

8.Linux网络基础配置 ·在Linux中,以太网接口被命名为eth0,eth1等,0,1代表网卡编号, ·查看: ·通过lspci查看网卡硬件信息,如果是usb网卡,可以运行lsusb, ·ifconfig -a查看所有接口,ifconfig eth0查看特定接口, ·ifup eth0启动接口,ifdown eth0禁用接口, ·配置:运行setup配置网卡, ·网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0, ·DNS配置文件/etc/re

Docker 快速上手:用 Docker + GitBook 写书

By Falcon of TinyLab.org 泰晓沙龙第二期 @ 2015/04/26 准备 GitBook 环境 安装 Docker 以Ubuntu为例 $ echo deb http://get.docker.io/ubuntu docker main | sudo tee /etc/apt/sources.list.d/docker.list $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D786

网络基础配置

1.网络基础知识一台主机如果可以连接公网,比如访问www.baidu.com 那么这台主机必然会有 ipaddress GATEWAY     dns       主机域名转换成ip的服务器 ############ipaddress############## tcp/ip ipv4 2进制32位 254.254.254.254/255.255.255.0 11111110.11111110.11111110.11111110/11111111.11111111.11111111.000000

Linux网络基础配置

1.TCP/IP网络配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network /etc/host.conf /etc/hosts /etc/resolv.conf /etc/services (1)/etc/sysconfig/network-scripts/ifcfg-eth0 网络接口的启动脚本 内容实例: DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.1