Docker 容器互联

Docker容器互联实现容器间通信

首先,大家如果看到有什么不懂的地方,欢迎吐槽!!!
我会在当天或者第二天及时回复,并且改进~~



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

一、自定义容器命名
连接容器依据系统容器的名称来执行,但自定义命名容器有两个好处

  • 自定义的命名,比较好记。比如一个web应用容器,我们可以起名为web
  • 当要连接其他容器的时候,可以作为一个有用的参考点,比如连接web容器到db容器

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

docker run -d --name web training/webapp
docker ps -a                                 #查看容器name
docker inspect -f "{{ .Name }}" container_id #查看容器name 

注:容器的名称是唯一的。如果已经命名了一个叫web的容器,当你要再次使用web这个名称的时候,需要先用docker rm 来删除之前创建的同名容器。
注:在执行docker run的时候如果添加–rm标记,则容器在终止运行后会立即删除。–rm 和 -d 不能同时使用
注:docker rm -f $(docker ps -qa) 删除所有存在的容器,不管是否运行中

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

docker run -d --name db 192.168.0.216:5000/postgres       #创建db容器
docker run -d -P --name web --link db:db training/webapp  #创建web容器并且link db容器
docker exec -it web /bin/bash                             #进入web容器查看link信息   

在容器中,查看环境变量。我们可以看到关于db的link信息

root@b3ae42ca7792:/opt/webapp# env |grep -v ENV | grep 'DB_'
DB_NAME=/web/db
DB_PORT_5432_TCP_ADDR=172.17.0.92
DB_PORT=tcp://172.17.0.92:5432
DB_PORT_5432_TCP=tcp://172.17.0.92:5432
DB_PORT_5432_TCP_PORT=5432
DB_PORT_5432_TCP_PROTO=tc

在容器中,查看/etc/hosts映射文件,我们也可以看到db的信息

root@b3ae42ca7792:/opt/webapp# cat /etc/hosts | grep -v ip6
172.17.0.93 b3ae42ca7792
127.0.0.1   localhost
172.17.0.92 db 49ca543a5074

并且可以ping通db容器,说明现在web和db容器已经互联

root@b3ae42ca7792:/opt/webapp# ping 172.17.0.92
PING 172.17.0.92 (172.17.0.92) 56(84) bytes of data.
64 bytes from 172.17.0.92: icmp_seq=1 ttl=64 time=0.062 ms
64 bytes from 172.17.0.92: icmp_seq=2 ttl=64 time=0.053 ms
64 bytes from 172.17.0.92: icmp_seq=3 ttl=64 time=0.057 ms

三、通过运行容器进行查看互联信息

在下图中,我将通过参数–rm进行运行容器,并且执行命令后进行删除操作,来查看容器–link db后的信息
大家可以清楚的看到,我先运行容器,并且连接db查看env环境变量
第二条命令连接db查看/etc/hosts文件
第三条命令查看web_del容器是否存在,发现运行结束就已被删除

时间: 2024-08-29 09:57:20

Docker 容器互联的相关文章

Docker容器互联方法-篇一

本文讲的是Docker容器互联方法-篇一,[编者的话]本文为Eddy Mavungu博士于DEIS官方博客中发布的系列文章的第一部分,Eddy博士在本篇系列文章中分享了Docker容器间互联的方法,并且做了演示.Eddy博士是DEIS公司的创始人,同时也是一位高级研究顾问.本文根据他于DEIS官方博客上发布的文章翻译而成. Docker容器都是独立的,互相隔离的环境.然而,它们通常只有互相通信时才能发挥作用. 虽然有许多方法可以连接容器们,可是我将并不会试着去将其全部讨论在内.但是在这一系列的方

Docker容器互联方法--篇二

本文讲的是Docker容器互联方法--篇二,[编者的话]本文为Eddy Mavungu博士于DEIS官方博客中发布的系列文章的第二部分,Eddy博士在本篇系列文章中分享了Docker容器间互联的方法,并且做了演示.Eddy博士是DEIS公司的创始人,同时也是一位高级研究顾问.本文根据他于DEIS官方博客上发布的文章翻译而成. 这篇系列文章的第二部分会看一下如何连接Docker各容器. 我们在第一节谈及了Docker的bridge接口,它可以让我们连接所有在相同Docker宿主机上的容器.特别需要

Docker 容器互联方法

Docker 容器互联方法 Docker容器都是独立的,互相隔离的环境.然而,它们通常只有互相通信时才能发挥作用. 虽然有许多方法可以连接容器们,可是我将并不会试着去将其全部讨论在内.但是在这一系列的方法中,我们将看看那些常用的做法. 虽然看起来是很浅显,但是这对于与Docker成天打交道的朋友来说,理解这些技术及底层的设计理念就显得非常地重要了. 理解这些主题将会: 帮助开发和运维人员探索广泛的容器部署的选择. 让开发和运维人员更自信的着手于微服务microservice架构设计. 让开发和运

学习Docker容器网络模型 - 搭建分布式Zookeeper集群

ZooKeeper是一个流行的分布式协调服务.它提供了两种不同的部署方式:单机模式和分布式模式.其中单机模式的部署非常简单,网上也有很多资料,我们今天会利用Docker搭建分布式Zookeeper集群,并来帮助大家熟悉Docker中容器网络模型的使用. ZooKeeper集群中所有的节点作为一个整体对分布式应用提供服务.节点中有两个的角色:Leader和Follower.在整个集群运行过程中,只有一个Leader,其他节点的都是Follower,如果ZK集群在运行过程中Leader出了问题,系统

Docker 容器虚拟化的实用技巧总结_docker

服务器虚拟化指的是在操作系统与硬件之间加一层,叫做hypervisor层,对下控制硬件,对上承载操作系统,操作系统os以文件形式封装运行,称为虚拟机,主要解决的问题是硬件利用率和灵活性的问题,常见的方案为vmware vsphere,xen,kvm,hyper-v..容器虚拟化指的是在os上将应用打包以进程的形式运行,应用和应用间非完全隔离,但是更轻量,效率高,lxc和docker都可以称为容器级虚拟化,区别在于docker可以理解为经过精美封装过更加好用的lxc,有更好的接口和更完善的配套.

如何在 Docker 容器之间设置网

你也许已经知道了,Docker 容器技术是现有的成熟虚拟化技术的一个替代方案.它被企业应用在越来越多的领域中,比如快速部署环境.简化基础设施的配置流程.多客户环境间的互相隔离等等.当你开始在真实的生产环境使用 Docker 容器去部署应用沙箱时,你可能需要用到多个容器部署一套复杂的多层应用系统,其中每个容器负责一个特定的功能(例如负载均衡.LAMP 栈.数据库.UI 等). 那么问题来了:有多台宿主机,我们事先不知道会在哪台宿主机上创建容器,如果保证在这些宿主机上创建的容器们可以互相联网? 联网

如何在一个Docker容器里安装Discourse

大家好,今天我们将会学习如何利用Docker平台安装Discourse.Discourse是一个完全开源的讨论平台,以未来十年的互联网理念设计,拥有一个邮件列表,一个论坛和一个长篇聊天室.不管从技术角度还是社会学角度,如今要体验一个现代的.勃勃生机的.完全开源的互联网讨论平台,Discourse都是一个不错的途径.Discourse是一个简单.简明.简易的讨论方式.它确实是一个令人称赞的平台,对于互联网上各种各样的论坛来说,提供了一个上手可用的很酷的服务. Docker是一个开源的.可以将任何应

五步轻松实施Docker容器技术

  随着Docker在云计算市场中领先地位的日益稳固,容器技术也成为了一种主流技术.为了对用户的应用程序使用容器技术,可遵循以下五个步骤. Docker容器技术已在云计算市场中风靡一时了,而众多主流供应商则面临着技术落后的窘境.那么,是什么让Docker容器技术变得如此受欢迎呢?对于刚入门的新手来说,容器技术可实现不同云计算之间应用程序的可移植性,以及提供了一个把应用程序拆分为分布式组件的方法.此外,用户还可以管理和扩展这些容器成为集群. 在企业用户准备把应用程序迁往容器之前,理解应用程序的迁移

基于微服务和Docker容器技术的PaaS云平台架构设计

本文讲的是基于微服务和Docker容器技术的PaaS云平台架构设计[编者的话]在系统架构上,PaaS云平台主要分为微服务架构.Docker容器技术.DveOps三部分,这篇文章重点介绍微服务架构的实施. [3 天烧脑式容器存储网络训练营 | 深圳站]本次培训以容器存储和网络为主题,包括:Docker Plugin.Docker storage driver.Docker Volume Pulgin.Kubernetes Storage机制.容器网络实现原理和模型.Docker网络实现.网络插件.