From c347e8c54bb206ff44ba7f198748e3ebe6e9c727 Mon Sep 17 00:00:00 2001 From: zyimm Date: Mon, 7 Aug 2023 12:02:27 +0800 Subject: [PATCH] =?UTF-8?q?=E2=98=98=20Docker=E8=BF=90=E8=A1=8C=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E5=AE=B9=E5=99=A8,=E5=A6=82=E4=BD=95=E6=8C=87?= =?UTF-8?q?=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, 44 insertions(+) create mode 100644 _posts/Linux/docker/container-network-ip.md diff --git a/_posts/Linux/docker/container-network-ip.md b/_posts/Linux/docker/container-network-ip.md new file mode 100644 index 0000000..7dc1924 --- /dev/null +++ b/_posts/Linux/docker/container-network-ip.md @@ -0,0 +1,44 @@ +--- +title: 🫡Docker运行一个容器,如何指定ip? +date: 2023-8-07 +tags: Docker +--- + +一些特殊部署场景下,需要指定某个容器ip以便于访问。可以使用Docker的网络模式来间接地控制容器的IP地址,所以这边记录一下!☘ + + +# 自定义一个名为my-docker-net网络 + +```shell +docker network create --subnet=172.0.0.0/24 my-docker-net +``` + +# 指定容器网络并设置固定ip + +``` +docker run -d --net=my-docker-net --ip=172.0.0.3 --name=[容器名字] -v [镜像名字] +``` + +通过IP`172.0.0.3`访问该容器了。 + + +# 补充知识 + +172.0.0.0/24 是一个 CIDR(Classless Inter-Domain Routing)表示法,它使用网络地址和掩码长度来表示一个 IP 地址范围。255.255.255.0 是对应的子网掩码,也称为网络掩码。包含了从 172.0.0.0 到 172.0.0.255 的所有 IP 地址。 + +在 CIDR(Classless Inter-Domain Routing)表示法中,斜线后的数字表示掩码长度,用于指示网络地址中的连续前缀位数。 + +具体来说,掩码长度是指网络地址中左边的连续位数,用于表示网络部分。剩余的位数则用于表示主机部分。 + +对于 IPv4 地址,掩码长度的有效范围是从 0 到 32。较小的掩码长度表示更大的网络范围,而较大的掩码长度表示更小的网络范围。 + +例如: + +1. /8 表示网络地址中的前 8 位用于网络部分,后 24 位用于主机部分。 +2. /16 表示网络地址中的前 16 位用于网络部分,后 16 位用于主机部分。 +3. /24 表示网络地址中的前 24 位用于网络部分,后 8 位用于主机部分。 + + +> 因此,/8 中的数字 8 表示网络地址中的前 8 位用于网络部分,剩下的位用于主机部分。这意味着 172.0.0.0/8 表示一个非常大的网络范围,其中 172.0.0.0 到 172.255.255.255 都属于同一个网络。 + +