docker简单介绍---网络端口管理
一、查看docker支持的网络类型
docker network ls
bridge:容器使用虚拟交换机的进行通信
host:使用宿主机的网络
none:只给容器分配一个lo的网卡,无法和外界进行通信
使用 docker run --network {host|none|bridge}指定通信方式
bridge:类似于虚拟机的物理桥接模式,容器与Host属于同一网段并且网络是互通的,运行容器默认是这种网络桥接模式,使用 docker run -it 容器id /bin/bash,
在容器中使用yum -y install net-tools 就可以使用ifconfig查看容器的IP地址
docker0为虚拟交换机,使用brctl show来查看虚拟交换机开通的虚拟接口,如果没有brctl则需要安装:yum -y install bridge-utils
====================================================================
查看网络映射
iptables -t nat -L -n
端口映射
随机映射:
docker run -d -P --name duankou 镜像名称 (docker ps -l 查看随机端口号)
指定映射端口:
docker run -d -p 8080:80 -name my_nginx 镜像名称 (将容器的80端口映射给本地host的8080端口)
docker run -d -p 192.168.1.100:8080:80 -name my_nginx 镜像名称 (将容器的80端口映射给本地192.168.1.100的8080端口,适用于多网卡映射)
指定多个映射端口
docker run -d -p 8080:80 -p 443:443 -name my_nginx 镜像名称 (将容器的80端口映射给本地host的8080端口,将容器的443端口映射给本地host的443端口)
共享容器网络(可以理解为一台主机上运行俩个进程)
docker run -it --name web1 --rm 容器id或者名称 /bin/bash
然后在容器中执行ifconfig
创建另外一个容器
docker run -it --network container:cfd9393ea161 --name nginx-2 --rm 另外一个镜像id或者名称 /bin/bash #--network指定的是需要共享网络的容器
因为网络已经共享了一个开了80端口的容器,所以我们将nginx的端口改为8080,然后启动, 这样在俩个容器中可以看到俩个容器启动的nginx了,
可以理解为共享网络,但是其它空间是不共享的,
修改docker0的ip地址:
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://4lymnb6o.mirror.aliyuncs.com"],
"bip":"10.1.0.1/16"
}
添加一个bip字段,记得使用,隔开字段,属于python的字典格式
然后重启docker即可 systemctl restart docker
修改docker0的DNS地址
{
"registry-mirrors": ["https://4lymnb6o.mirror.aliyuncs.com"],
"bip": "10.1.0.1/16",
"dns": ["123.150.150.150","8.8.8.8"]
}
重启docker'即可,添加一个dns字段
docker run -d --name nginx-1 --hostname nginx-1 --rm -p 11111:80 498 -g 'daemon off;' #498为镜像id的前三位
进入到容器中,发现ip地址和dns地址都修改过来了
==============================================================================================================================
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2018-01-31 yum报错:Error: Multilib version problems found. This often means that the root