Day11 : Docker基本操作 Docker Net篇

前几天我们讲了如何建立Container,每个Container会包含一项服务,如前端、後端、资料库,Container之间能不能互相沟通藉此串联起一个更大的服务应用呢? 可以的,以下讲解Docker Network的简单原理。

  • docker network ls 查看所有网路
  • docker network inspect <NetworkName> 检视细部网路设定

https://ithelp.ithome.com.tw/upload/images/20210913/20119044uApAL43v8F.png

查看所有网路可以发现默认有分成host与bridge,Bridge是Linux的虚拟网路桥接技术,将Bridge打开可以发现里面包含两个Container,也就是我上一个章节建立的Web_App与Web_Vol,ip位置分别是172.17.0.2、172.17.0.3,详细网路架构图如下:

https://ithelp.ithome.com.tw/upload/images/20210913/20119044s0DSSg2Hiv.png

安装docker後会新增一个docker网卡默认IP为172.17.0.1/16 (host),他会接收来自本网卡(eth0)的转发封包。新建立的Container则是会自动生成IP172.17.X.X依序排列下去。

Container互相访问

那Container的互相访问很简单,直接访问172.17.X.X的IP就好了,我们来实验看看:

# 进入container
docker exec -it Web_APP bash

# 查看docker 网路
cat /etc/hosts

# 安装相关网路工具
apt-get update
apt-get install curl

# 测试去抓其他Container
curl 172.17.0.3

如下图,本docker IP为172.17.0.2,可以成功抓到其他Container的资料。
https://ithelp.ithome.com.tw/upload/images/20210913/20119044LTJaTQSBBz.png

Network映射

但是Container的IP为自动生成,我们的程序在部属的时候不可能部属上去後才改IP。有一个好方法,做网路映射--link

  • docker run --link <外部Container>:<内部Network名称> <ImageName>
# 建立新的有联结的APP叫做Web_Network
docker run -it -d --name Web_Network -p 8082:80 --link Web_APP:Web_APP --link Web_Vol:Web_Vol httpd:2.4

# 进入Container
docker exec -it Web_Network bash

# 查看Network
cat /etc/hosts

可以看到Network自动多了两个网路IP,Web_APP与Web_Vol
https://ithelp.ithome.com.tw/upload/images/20210913/20119044xdIE7DOPKp.png

直接透过名称抓抓看

curl Web_APP
curl Web_Vol

成功获得:
https://ithelp.ithome.com.tw/upload/images/20210913/20119044Y9IOKgtWTY.png

实务上也不会透过--link的方式来建立Network映射。更常使用的会是docker-compose,等之後再慢慢来讲解吧 !

昨天打了AZ,全身肌肉有疼痛就像是在抽经边缘,痛到睡不着。希望明天症状好转,继续更新。


<<:  Day1 阿里云崛起

>>:  Day 11. Coding style

[2021铁人赛 Day-03] ARM and 嵌入式开发板

前言 昨天朋友知道我正在撰写文章,果然是朋友啊XD 毫不留情地被呛爆,写一大堆屁话,却没有介绍嵌入...

Day26:HTML(24) form(3)

"select"元素 "select"元素定义了一个下拉列表...

失误的修补智慧

在各行各业工作时,很多人都有因为工作上失误,而被上司责骂的经验,这些必经的过程,被视为「学习」和「记...

[很不铁人的 IT 铁人赛] 前端工程师学资讯安全

(图片来自 Google for Education) 2021 铁人赛又开赛啦 ! 继 2019...

Day 30 JavaScript < 简易数据类型介绍 & End>

1. 数据类型简介 1-1 为什麽需要数据类型 在电脑中,不同的数据所需占用的空间是不同的,为了方便...