17、Docker基础网络

版权声明:原创作品,谢绝转载!否则将追究法律责任。 ————— 作者:kirin

四种基础网络类型

bridge  默认类型 NAT模式

#启动一个alpine容器
[root@docker02 ~]#  docker run -it alpine:latest 

##另开一个窗口查看这个容器的详细信息
[root@docker02 ~]#  docker inspect nifty_wing 

##上面是默认的,接下来我们指定一下网络类型
[root@docker02 ~]#  docker run -it --network bridge alpine:latest 
[root@docker02 ~]#  docker inspect zen_goodall

host    host类型,使用宿主机网络,网络性能最高

##退出之前的容器,重新启动一个指定网络类型是host
[root@docker02 ~]#  docker run -it --network host alpine:latest 

##这时候的容器是跟宿主机共用一个网络,在容器里执行抓包命令的话就相当于在宿主机上执行。包括/etc/hosts文件内容也是一样的。这就是共 用网络的特点,但是如果宿主机把端口占用了,容器就不能用了,容器就需要指定端口了。否则容器肯定起不来,会提示端口被占用
[root@docker02 ~]#  docker logs

container 容器类型。使用其他容器共用网络,k8s中使用

#查看有哪些容器在运行。过滤下它的ip地址
[root@docker02 ~]#  docker ps
[root@docker02 ~]#  docker inspect registry|grep -i ipadd

#启动一个新容器,使用container
[root@docker02 ~]#  docker run -it --network container:registry alpine:latest 

##也就是说它俩不能出现端口冲突,如果端口冲突肯定报错,后起的容器肯定起不来

-------------------------------------------------------------------------------

none    没有网络,上不了外网
[root@docker02 ~]#  docker run --network none -it alpine:latest 

创建自定义网络

##docker network ls网络默认就可以查看
[root@docker02 ~]#  docker network ls

##k8s就是这三种网络

##比如我们尽到一个容器的目录,把它停掉。它不止会把容器删掉,网络也会删掉

[root@docker01 ~]#  cd /opt/dockerfile/docker-compose/zabbix/ 
[root@docker01 /opt/dockerfile/docker-compose/zabbix]#  docker-compose down

#docker compose会先创建网络,在启动容器
[root@docker01 /opt/dockerfile/docker-compose/zabbix]#  docker-compose up -d

##可以看看它的属性
[root@docker01 ~]#  docker network inspect zabbix_default 


##创建自定义网络
[root@docker01 ~]# docker network create -d bridge --subnet 172.18.0.0/16 --gateway 172.18.0.1 oldzhang

##创建指定名字与网络的容器
[root@docker01 ~]#  docker run -d --name web01 --network oldzhang nginx:latest 
[root@docker01 ~]#  docker run -it --network oldzhang alpine:latest 

当使用同一个网络的时候,容器之间的通讯,用名字就可以了,就再也不用担心它的ip地址是多少了。
posted @ 2022-06-03 11:43  kirin(麒麟)  阅读(40)  评论(0编辑  收藏  举报
Δ