docker原生网络的特点即使用场景,即使用测试

docker的3个原生网络的特点即使用场景
docker网络,原生网络:
Docker netwwork ls
1.None网络

特点:PS:用到None网络的容器,会发现他只有一个Loopback回环的网络,没有Mac地址,IP等信息,意味着他不能跟外界通信,是被隔离起来的网络。
使用场景:
隔离,意味着安全,所以,此网络可以运行关于安全方面的验证码,效验码等服务。
[ ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
c88c6afa3e8e bridge bridge local
167ae1b36ebf host host local
f7b87e5b97e1 none null local

None:什么都没有的网络: null:表示为空 bridge:桥接 SCOPE:在本地中是有效的
在仓库上拉镜像
docker pull busybox
创建none的容器为none
docker run -itd --name none --network none busybox
进入none容器
docker exec -it none /bin/sh

2.host网络;基于宿主机的网络

特点:PS:用到Host网络的容器,他的网络跟宿主机的网络一模一样,那是因为,在创建这个容器之初,并没有对它的Net网络栈进行隔离,而是直接使用的宿主机网络战。
使用场景:
网络配置与dockerHost完全相同,性能较好,但不便之处是灵活性不高,容器与宿主机出现端口冲突问题。(不建议使用,仅供了解)
docker run -itd --name host --network host busybox:latest
docker exec -it host /bin/sh

3.bridge:桥接网络;brctl show (查看桥接网络)

docker0网卡:
特点:
在我们安装docker这个服务的时候,默认就会产生一张docker0的网卡,以版默认ip为172.17.0.1/16(之后以此类推,就算删除已有ip,也不会在使用)
容器默认使用的网络是docker0网络,docker0此时相当于一个路由器,基于此网络的容器,网段都是和docker0一致的。

docker run -itd --name test1 busybox:latest
docker exec -it test1 /bin/sh
Ip a
Brctl show

4.自定义网络:

自带了一个ContainerDNSserver功能(域名解析)
根据biridge
创建一个bridge网路
docker network create -d bridge my_net
-d:后面接的是什么网络。
brctl show
docker run -itd --name test3 --network my_net busybox:latest
docker run -itd --name test4 --network my_net busybox:latest

进入容器
docker exec -it test3 /bin/sh
docker exec -it test4 /bin/sh
Ip a
Ping test4

PS:自定义网络优点,它可以通过容器名称通信

创建一个自定义网络my_net2:并指定网关和网段.

docker network create -d bridge --subnet 172.20.16.0/24 --gateway 172.20.16.1 my_net2
docker run? -itd --name test5 --network my_net2 --ip 172.20.16.2 busybox:latest
docker run? -itd --name test6 --network my_net2 --ip 172.20.16.3 busybox:latest
docker exec -it test5 /bin/sh
Ping test6

Ps:如果想要给容器指定IP地址,那么自定义网络的时候,必须指定网关gate和subnet网段选项

2.自定义一个镜像,要求基于nginx镜像,自定义镜像的主页内容为:自己的名称|
nginx-web

docker pull nginx

cd test1/
配置Dockerfile
vim Dockerfile

FROM nginx
WORKDIR /usr/share/nginx/html/
RUN rm -rf index.html
COPY index.html /usr/share/nginx/html
RUN nginx
docker原生网络的特点即使用场景,即使用测试

创建完制作镜像
docker build -t nginx-test .
docker原生网络的特点即使用场景,即使用测试
创建容器
docker run -itd --name lbs nginx-test nginx -g "daemon off;"
docker exec -it lbs /bin/sh

安装vim命令(在网上查到的感觉有点用)
apt-get install vim 会出现
Reading package lists... Done
? ? ? ? Building dependency tree ? ? ??
? ? ? ? Reading state information... Done
? ? ? ? E: Unable to locate package

之后在使用
apt-get update
再次使用apt-get install vim命令即可
docker原生网络的特点即使用场景,即使用测试
index.html:中的名字
docker原生网络的特点即使用场景,即使用测试

3.创建一个自定义网络,并且使用上述的镜像运行一个容器,容器使用这个自定义网络,切换ip地址是自定义的
创建一个自定义网卡设置网段网关
docker network create -d bridge --subnet 172.20.1.0/24 --gateway 172.20.1.1 LBSnet
docker network ls
docker原生网络的特点即使用场景,即使用测试
创建好后运行容器
自定义ip地址
docker run -itd --name nginx-test --network LBSnet --ip 172.20.1.10 nginx-test:latest
查看容器
docker inspect nginx-test
docker原生网络的特点即使用场景,即使用测试

访问容器IP
docker原生网络的特点即使用场景,即使用测试

4.将镜像上传到私有仓库
安装私有仓库
docker pull registry:2
docker原生网络的特点即使用场景,即使用测试
运行私有仓库服务
docker run -itd --name registry --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2
docker原生网络的特点即使用场景,即使用测试
配置文件,并重启docker服务
vim /usr/lib/systemd/system/docker.service
docker原生网络的特点即使用场景,即使用测试
systemctl daemon-reload
systemctl restart docker
将nginx-test改名,并上传到私有仓库
docker tag nginx-test:latest 192.168.1.1:5000/test
docker原生网络的特点即使用场景,即使用测试
docker push 192.168.1.1:5000/test:latest
docker原生网络的特点即使用场景,即使用测试

使用改名的镜像,创建容器,
docker run -itd --name lbs12 --network LBSnet --ip 172.20.1.100 192.168.1.1:5000/test:latest
访问ip
docker原生网络的特点即使用场景,即使用测试

相关推荐