宿主机,宿主机怎样与虚机里的docker容器通信(docker exec 进入容器)

一个非常好的问题代备案。使用Docker时,宿主机和Docker容器之间宿主机、Docker容器和Docker容器之间,都需要进行服务间通信。宿主机,宿主机怎样与虚机里的docker容器通信(docker exec 进入容器)一,宿主机和Docker容器之间Docker启动容器时,指定服务端口,比如启动Redis时,端口为6379,这时如果需要访问Redis服务,就使用ip地址:端口,或者直接使用localhost:6379在需要直接登录到容器时,可以使用docker命令,比如:docker exec -it data_redis_1 bash其中data_redis_1时容器名称,可以通过docker ps查看当前容器信息: 二,Docker容器之间Docker容器快捷高效部署应用,资源编排定义和运行多个容器,通过docker-compose.yml配置文件声明各个服务,作为一个整体来创建和启动。那么Docker容器之间怎么通信呢?显然是不应该使用IP地址的,应该使用和配置hostname,如果在不同子网,就增加networks信息。1,配置hostname以Redis为例,Redis服务被API服务调用,为Redis配置hostname: cache2,引用hostnameAPI服务在application.yml中配置Redis连接信息时,使用hostname指定服务地址: 3,不同子网间配置networks信息实际使用中经常将服务按照不同类别部署在不同子网中,这时需要指定networks信息。以数据层和接口层为例:1)部署Redis时,配置networks为data,桥接模式2)部署API服务时,声明networks信息,data是external外部子网 我是工作多年的Web应用架构师,陆续发布关于软件开发方面的文章,欢迎关注我,了解更多IT专业知识。如果只有两台电脑: 双机共享Internet! 如果你的ADSL MODEM是USB口的,就可以省去一块网卡的费用(注:主机不必双网卡)。 ★★★ 两台电脑共享上网设置系统是WINDOWS XP的在设置共享的时候非常简单,右键点击“网上邻居”,选择“属性”,就看到了“网络连接”界面,在这个界面的左栏最上方,有一个“网络任务”的小窗口,在这个窗口下有“设置家庭或小型办公网络”,我们的网络设置就从这里开始。在进行网络设置之前,我们首先要把两台电脑的网卡都装好,并且确认驱动程序已经安装。  虚拟机的使用的确给Linux的学习者提供了很大的方便。不过在Linux学习过程中,当涉及到应用软件的使用时,虽然可以直接从网上下载程序包或源码,但用惯了迅雷,对Linux中的下载速度简直无法忍受,且原有的很多资源本应该可以直接使用,没有必要重新下载。  因而在两个系统中共享信息成为亟待解决的问题。在网上搜索了大量相关信息,介绍两个系统间信息共享的不少,但是提供虚拟机host-guest机不同系统之间资源共享解决方案的不多。在朋友的帮助下,经过多次尝试和摸索,终于有了一些搜获。现提供一套包括局域网配置在内的较为详细的解决方案,供初学者参考。  环境介绍:虚拟机:VMware Workstation 5。5Host机系统:Windows 2000 ServerGuest机系统:Red Hat Enterprise Linux 4其实作为两个系统而言,要进行资源的共享,方法很多,最初我尝试了使用mount命令挂载文件系统。  从命令本身来看,想要挂载一个Windows下的文件系统或驱动盘似乎没有什么问题。首先在Linux系统/mnt空目录下,建立挂载点:#mkdir /mnt/mystudy/mnt目录是专门用来当作挂载点的目录。mystudy是自定义的专用挂载点名称。  然后我们看一下mount命令的使用方法:命令格式:mount [-t vfstype] [-o options] device dir主要参数:① -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型,Windows NT ntfs文件系统:ntfs② -o options 主要用来描述设备或档案的挂接方式。  ③ device:要挂接(mount)的设备。Linux中,设备名通常存放在/dev中,设备名遵循一些规则,如:/dev/hda1中,hd指Hard Disk,a代表第一个硬盘设备,1代表第一个硬盘的第一主分区。④ dir:设备在系统上的挂接点(mount point)。  如,我们刚刚建立的挂载点:/mnt/mystudy遵循此规则,希望挂载硬盘的第二个主分区键入命令: #mount -t ntfs /dev/hda2 /mnt/mystudy返回信息: Mount:fs type ntfs not supported by kernel竟然无法找到ntfs格式的分区?那么我的Windows系统跑到哪里去了?查看一下查看一下分区情况:#fdisk –L得到如下结果发现根本没有找到Windows的分区。  我的Linux装在虚拟机里,虚拟机分配给Linux系统的设备仅仅是8G大小的虚拟硬盘分区,所以根本没有办法挂载Windows系统所在的分区以及其他的硬盘分区。那么在虚拟机环境下,想要共享资源,mount命令基本上派不上用场了,只能从联机的方式来考虑了。  提供最常用的两种方案:1。 FTP访问2。 Samba服务不管是FTP还是Samba,首先都需要分析虚拟机环境下的Host-Guest网络连接。基本上我们可以把Host机与Guest机之间当作局域网中的两台机器来实现互联。那么现在需要重新考虑关于《虚拟机的网络配置》一文中提到过的网络连接方式。


本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.xiaosb.com/beian/23031/