Docker 网络互相访问
对于docker容器,我们知道它是沙箱隔离的,每一个docker容器都是独立运行的,相当于一个独立的虚拟机,所以他们只能进行网路访问,如果我们使用docker run时启动容器,没有指定网路(--net参数),默认使用的bridge的网络类型。创建三个容器,docker_redis,docker-nacos,docker-nacos查看docker_redis网路类型查nacos_docker网路
对于docker容器,我们知道它是沙箱隔离的,每一个docker容器都是独立运行的,相当于一个独立的虚拟机,所以他们只能进行网路访问,如果我们使用docker run时启动容器,没有指定网路(--net参数),默认使用的bridge的网络类型。
#查看全部网路类型
docker network ls
#创建一个新的网路
docker network create mynetwork
创建三个容器,docker_redis,docker-nacos,docker-nacos
#创建redis使用默认网络
docker run --name=docker_redis -d docker_redis
#创建nacos-docker使用默认网络
docker run --name=nacos-docker -d docker-nacos
#创建docker-nacos使用mynetwork网络
docker run --name=docker-nacos --net=mynetwork --network-alias=nacosdockerservice -d docker-nacos
查看docker_redis网路类型
查nacos_docker网路类型
查看docker-nacos网路
创建容器时使用同一个网路,创建出来的容器时属于同一个网段,如果使用不同网段创建处理的容器不属于同一个网段所以也就不能直接访问。
1.ip访问
如果它们属于同一个网络设备,可以直接访问。这种方式必须知道每个容器的ip,在实际使用中并不实用。
2.link方式
运行容器的时候加上参数link
--link:参数中第一个centos-1是容器名,第二个centos-1是定义的容器别名(使用别名访问容器),为了方便使用,一般别名默认容器名。
#第一容器
docker run --name=docker-nacos -d docker-nacos
#第二个容器
docker run --name=docker-redis --link docker-nacos:docker-nacos docker-redis
此方法对容器创建的顺序有要求,如果集群内部多个容器要互访,使用就不太方便。
3.创建bridge网络
3.1创建一个新的网路
docker network create mynetwork
3.2创建容器并使用,并且增加网络别名
#第一个容器
docker run --name=docker-nacos --net=mynetwork --network-alias=nacosdockerservice -d docker-nacos
#第二个容器
docker run --name=producter-one --net=mynetwork --network-alias=producter-one -d producter-one
3.3使用容器别名访问
在 docker-nacos容器中可以直接ping producter-one
在producter-one容器中可以直接ping nacosdockerservice
这三种方式,最推荐使用第三种
更多推荐
所有评论(0)