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地址是多少了。
本文来自博客园,作者:kirin(麒麟),转载请注明原文链接:https://www.cnblogs.com/kirin365/articles/16137820.html