[]# docker network --help
Usage: docker network COMMAND
Manage networks
Commands:
connect Connect a container to a network
create Create a network
disconnect Disconnect a container from a network
inspect Display detailed information on one or more networks
ls List networks
prune Remove all unused networks
rm Remove one or more networks
查看所有的docker 网络????????
[]# docker network ls
网络模式?
bridge:桥接(docker默认)
none:不配置网络
host:和宿主机共享网络
container:容器内网络连通(很少用,局限很大)
# 我们直接启动的命令 --net bridge,而这个就是我们的docker0
docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat01 --net bridge tomcat
# docker0 特点,默认的,域名不能访问, --link 可以打通连接
# 我们可以自定义一个网络
# --driver bridge
# --subnet 192.168.0.0/16
# --gateway 192.168.0.1
[]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
# 测试 启动两个tomcat容器 启动时指定使用自定义网络 mynet
[]# docker run -d -P tomcat-mynet-01 --net mynet tomcat
[]# docker run -d -P tomcat-mynet-02 --net mynet tomcat
# 做ping 测试
[]# docker exec -it tomcat-mynet-01 ping tomcat-mynet-02
# 测试结果为通过容器名可以直接ping通
我们自定义的网络 docker都已经帮我们维护好了对应关系,推荐我们平时这样使用网络
网络连通
# 默认网卡启动两个tomcat 默认是使用docker0
[]# docker run -d -P --name tomcat01 tomcat
[]# docker run -d -P --name tomcat02 tomcat
# ping测试连接上边使用 自定义网卡的容器
[]# docker exec -it tomcat01 ping tomcat-mynet-01
# 结果显然是ping不通的
# 我们使用 docker network connect 将一个容器连接到一个网络上
# 测试打通 tomcat01 到 mynet
[]# docker network connect mynet tomcat01
# 联通之后就是将 tomcat01 放到mynet 网络下
# 一个容器两个ip地址
[]# docker exec -it tomcat01 ping tomcat-mynet-01
# 这时就可以联通了
结论:假设要夸网络操作别人,就需要使用 docker network connect 联通
SpringBoot 微服务打包Docker镜像
- 构建SpringBoot项目
- 打包应用
- 编写Dockerfile
FROM Java:8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"] - 构建镜像
[]# docker build -t springboot-test . - 发布运行
[]# docker run -d -p 8080:8080 springboot-test
|