Docker設置固定IP地址的方法詳解
一、查看Docker的網(wǎng)絡類型
Docker有三種網(wǎng)絡模式:Brigde,host,none。Brigde是常用的網(wǎng)絡模式,也是缺省模式。
#docker network ls ----查看docker下網(wǎng)絡模式 NETWORK ID NAME DRIVER SCOPE 9781b1f585ae bridge bridge local 1252da701e55 host host local 237ea3d5cfbf none null local
啟動 Docker的時候,用 --network 參數(shù),可以指定網(wǎng)絡類型。
1、brigde
默認情況下啟動的Docker容器,使用 bridge,Docker安裝時創(chuàng)建的橋接網(wǎng)絡,每次Docker容器重啟時,會按照順序獲取對應的IP地址,這個就導致重啟docker后,Docker的IP地址就變了。
docker run -itd --name test1 --network bridge --ip 172.17.0.10 centos:latest /bin/bash
2、host
使用 --network=none ,docker 容器就不會分配局域網(wǎng)的IP。
3、none
使用 --network=host,此時,Docker 容器的網(wǎng)絡會附屬在主機上,兩者是互通的。
例如,在容器中運行一個Web服務,監(jiān)聽8080端口,則主機的8080端口就會自動映射到容器中。
二、創(chuàng)建docker時設置固定IP
可以使用Docker的 –ip參數(shù) 指定容器的IP地址。
例如,使用以下命令運行一個名為mycontainer的容器,并將其IP地址設為192.168.0.100:
docker run -d --name=mycontainer --ip=192.168.0.100 myimage
三、為已創(chuàng)建docker設置固定IP
如果需要為已經(jīng)存在的容器指定IP地址,則可以通過以下步驟操作。
1、創(chuàng)建一個新的固定IP網(wǎng)絡
首先,需要使用以下命令創(chuàng)建一個新的固定IP網(wǎng)絡。
在該例子中,將網(wǎng)絡名設置為 “mynetwork”,IP地址范圍為 “172.100.0.2/16”,默認網(wǎng)關為 “172.100.0.1”:
docker network create --subnet=172.100.0.0/16 --gateway=172.100.0.1 --ip-range=172.100.0.2/16 -d bridge container-network
2、將容器加入新網(wǎng)絡
然后,將需要指定IP地址的容器加入這個新網(wǎng)絡。使用以下命令將容器 “mycontainer” 加入到 “mynetwork” 網(wǎng)絡中,并分配IP地址 “192.168.0.100”:
docker network connect --ip=192.168.0.100 mynetwork mycontainer
現(xiàn)在,容器 “mycontainer” 將在 “mynetwork” 網(wǎng)絡中,它的IP地址為 “192.168.0.100”。
注意,如果容器已加入一個Docker網(wǎng)絡中,則必須首先將其從該網(wǎng)絡中刪除,然后再將其加入到新網(wǎng)絡中。使用以下命令將容器從當前Docker網(wǎng)絡中刪除:
docker network disconnect bridge mycontainer
然后再使用上面的命令將容器加入新網(wǎng)絡中。
最后,如果不再需要舊網(wǎng)絡,則可以使用以下命令刪除它:
docker network rm old_network
四、Docker Compose中定義容器的IP地址
使用networks設置固定IP地址,可以使用Docker Compose的networks設置容器的固定IP地址。例如,使用以下配置文件定義一個名為myapp的服務,并將其IP地址設置為192.168.0.100:
version: '3'
services:
myapp:
build: .
networks:
mynetwork:
ipv4_address: 192.168.0.100
networks:
mynetwork:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.0.0/24在這個配置文件中,使用了Docker Compose的networks設置一個名為mynetwork的網(wǎng)絡,并將其IP地址設置為192.168.0.100。然后,在myapp服務中,將networks參數(shù)設置為mynetwork,將myapp容器加入到這個網(wǎng)絡中,并設置它的IP地址為192.168.0.100。最后,IPAM(IP地址管理)配置了一個IP地址段為192.168.0.0/24的子網(wǎng),以供該網(wǎng)絡使用。
五、Dockerfile中設置IP地址
在Dockerfile中設置IP地址??梢允褂肊NV命令設置容器的IP地址變量,然后以這個變量為參數(shù)啟動容器。
例如:
#vim Dockerfile FROM ubuntu ENV MY_IP 192.168.0.100 CMD ["/bin/bash", "-c", "echo My IP address is $MY_IP"]
vim docker-compose.yml
version: '3'
services:
myapp:
build: .
command: /bin/bash -c "echo My IP address is $MY_IP"例子中,Dockerfile中定義了一個名為MY_IP的變量,并設置為192.168.0.100。然后,在docker-compose.yml文件中,使用command參數(shù)啟動容器,并將MY_IP變量替換到命令中。這樣,在容器啟動時就可以看到應該輸出的IP地址了。
總結
到此這篇關于Docker設置固定IP地址的文章就介紹到這了,更多相關Docker設置固定IP地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
云原生使用Docker部署mysql數(shù)據(jù)庫的詳細過程
使用docker部署mysql,可以省去mysql的安裝配置過程,而且不限制數(shù)量,即起即用,下面這篇文章主要給大家介紹了關于云原生使用Docker部署mysql數(shù)據(jù)庫的詳細過程,需要的朋友可以參考下2023-03-03
Docker swarm集群部署過程詳解(包含compose.yml文件詳情)
Docker Swarm是Docker的集群管理工具,支持服務部署、副本調(diào)度、Stack管理(基于Compose文件),包含初始化集群、節(jié)點添加、服務更新、資源清理等操作,確保容器化應用的高效運行,本文給大家介紹Docker swarm集群部署包含compose.yml文件詳情,感興趣的朋友一起看看吧2025-07-07
詳解docker部署SpringBoot及替換jar包的方法
這篇文章主要介紹了詳解docker部署SpringBoot及替換jar包的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11

