From f0a20fc2c5cd628f1cb1746716d5e724137ae059 Mon Sep 17 00:00:00 2001 From: zyimm Date: Wed, 22 Nov 2023 11:59:14 +0800 Subject: [PATCH] =?UTF-8?q?:art:Docker=E8=BF=90=E8=A1=8C=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=AE=B9=E5=99=A8=E5=B9=B6=E5=9B=BA=E5=AE=9AIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/Linux/docker/container-network-ip.md | 44 ++++++++++++++++++--- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/_posts/Linux/docker/container-network-ip.md b/_posts/Linux/docker/container-network-ip.md index a08b81d..dd8f00d 100644 --- a/_posts/Linux/docker/container-network-ip.md +++ b/_posts/Linux/docker/container-network-ip.md @@ -4,25 +4,57 @@ date: 2023-8-07 tags: Docker --- -一些特殊部署场景下,需要指定某个容器ip以便于访问。可以使用Docker的网络模式来间接地控制容器的IP地址,所以这边记录一下!☘ +一些特殊部署场景下,需要指定某个容器ip以便于访问。可以使用Docker的网络模式来间接地控制容器的IP地址,所以这边记录一下分别在单独docker与docker-compose配置示例!☘ -## 1.自定义一个名为my-docker-net网络 +## docker + +### 1.自定义一个名为my-docker-net网络 ```sh docker network create --subnet=172.0.0.0/24 my-docker-net ``` -## 2.指定容器网络并设置固定ip +### 2.指定容器网络并设置固定ip ```sh docker run -d --net=my-docker-net --ip=172.0.0.3 --name=[容器名字] -v [镜像名字] ``` ---net 指定网络 ---ip指定ip +`--net` 指定网络 +`--ip` 指定ip 通过IP`172.0.0.3`访问该容器了。 +## docker-compose + +在docker-compose.yml文件中`networks`节点进行配置 + +### 1.subnet 进行配置网段 + +```yml +networks: + default: + driver: bridge + ipam: + driver: default + # 解除下面的注释可以设置网段,用于nginx等容器固定容器IP + config: + - subnet: 172.0.0.0/24 +``` + +### 2.对应service下`networks`节点进行配置固定ip + +```yml +version: "3" + services: + nginx: + networks: + default: + ipv4_address: 172.0.0.3 +``` + +以上命令对compose的网络配置一个172.0.0.0/24网段,然后指定其中`nginx`指定ip为`172.0.0.3` + ## 补充知识 @@ -40,4 +72,4 @@ docker run -d --net=my-docker-net --ip=172.0.0.3 --name=[容器名字] -v [镜 2. /16 表示网络地址中的前 16 位用于网络部分,后 16 位用于主机部分。 3. /24 表示网络地址中的前 24 位用于网络部分,后 8 位用于主机部分。 -> 因此,/8 中的数字 8 表示网络地址中的前 8 位用于网络部分,剩下的位用于主机部分。这意味着 172.0.0.0/8 表示一个非常大的网络范围,其中 172.0.0.0 到 172.255.255.255 都属于同一个网络。 +> 因此`/8` 中的数字 8 表示网络地址中的前 8 位用于网络部分,剩下的位用于主机部分。这意味着 172.0.0.0/8 表示一个非常大的网络范围,其中 172.0.0.0 到 172.255.255.255 都属于同一个网络。