🎨Docker运行一个容器并固定IP

This commit is contained in:
zyimm 2023-11-22 11:59:14 +08:00
parent 4bf0d1ea71
commit f0a20fc2c5

View File

@ -4,25 +4,57 @@ date: 2023-8-07
tags: Docker tags: Docker
--- ---
一些特殊部署场景下需要指定某个容器ip以便于访问。可以使用Docker的网络模式来间接地控制容器的IP地址所以这边记录一下 一些特殊部署场景下需要指定某个容器ip以便于访问。可以使用Docker的网络模式来间接地控制容器的IP地址所以这边记录一下分别在单独docker与docker-compose配置示例!☘
## 1.自定义一个名为my-docker-net网络 ## docker
### 1.自定义一个名为my-docker-net网络
```sh ```sh
docker network create --subnet=172.0.0.0/24 my-docker-net docker network create --subnet=172.0.0.0/24 my-docker-net
``` ```
## 2.指定容器网络并设置固定ip ### 2.指定容器网络并设置固定ip
```sh ```sh
docker run -d --net=my-docker-net --ip=172.0.0.3 --name=[容器名字] -v [镜像名字] docker run -d --net=my-docker-net --ip=172.0.0.3 --name=[容器名字] -v [镜像名字]
``` ```
--net 指定网络 `--net` 指定网络
--ip指定ip `--ip` 指定ip
通过IP`172.0.0.3`访问该容器了。 通过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`
<!--more--> <!--more-->
## 补充知识 ## 补充知识
@ -40,4 +72,4 @@ docker run -d --net=my-docker-net --ip=172.0.0.3 --name=[容器名字] -v [镜
2. /16 表示网络地址中的前 16 位用于网络部分,后 16 位用于主机部分。 2. /16 表示网络地址中的前 16 位用于网络部分,后 16 位用于主机部分。
3. /24 表示网络地址中的前 24 位用于网络部分,后 8 位用于主机部分。 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 都属于同一个网络。