1、网络
默认情况下,所有容器都是以 bridge 方式连接到 Docker 的一个虚拟网桥上:
加入自定义网络的容器才可以通过容器名互相访问,Docker 的网络操作命令如下L:
命令 | 说明 |
---|---|
docker network create | 创建一个网络 |
docker network ls | 查看所有网络 |
docker network rm | 删除指定网络 |
docker network prune | 清除未使用网络 |
docker network connect | 使指定容器连接加入某网络 |
docker network disconnect | 使指定容器连接离开某网络 |
docker network inspect | 查看网络详细信息 |
2、自定义网络
- 运行
ip addr
查看现有的网络接口地址 - 运行
docker network ls
查看 Docker 所有网络 - 运行
docker network create bai-test
创建自定义网络 - 运行
docker network ls
查看 Docker 所有网络多了一个名为 bai-test 的网络 - 运行
ip addr
查看也会发现现有的网络接口地址多了一个 - 运行
docker network connect bai-test mysql8
将 mysql8 镜像加入自定义网络 - 运行
docker inspect mysql8
查看详情即可发现 Networks 里多了一个 bridge - 也可在 run 的时候就指定自定义网络,demo如下
docker run d --name d -p 8080:8080 --network bai-test docker-demo
- 此时再运行
docker inspect dd
查看详情发现Networks 只有自定义网桥,没有默认的了,创建时自定义了,就不会加入默认的了
- 此时再运行
- 运行
docker exec -it mysql8 ping dd
发现可以直接 ping 通就ok了