Docker网络配置及部署SpringCloud项目详解

 更新时间:2023年01月17日 14:14:31   作者:南山 有谷堆  
bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上,下面这篇文章主要给大家介绍了关于Docker网络配置及部署SpringCloud项目的相关资料,需要的朋友可以参考下

本次目标:

  • Docker网络配置
  • Docker部署SpringCloud项目

一、Docker网络配置

Docker在创建容器时有四种网络模式:

bridge/host/container/none,bridge为默认不需要用--net去指定,其他三种模式需要在创建容器时使用--net去指定,今天所展示的是两种模式bridge和host(桥接和仅主机模式)

1.bridge模式(默认模式)

docker run时使用--net=bridge,这种模式会为每个容器分配一个独立的Network Namespace,

同一个宿主机上的所有容器会在同一个网段下,相互之间是可以通信的

所虚拟的服务器都有独立的ip

     注1:bridge为默认模式,不需要使用参数--net去指定,使用了--net参数反而无效

     注2:bridge模式无法指定容器IP(但非绝对,具体操作可参考其他资料)

Docker run -it --name mytomcat01 -p 8081:8080 镜像ID

查看当前桥接模式的情况:docker inspect bridge 

里面有个c2的网络地址 

 然后再关闭c2,重新查看桥接模式的情况

 接着我们ifconfig查看当前虚拟ip,里面因为装了docker引擎,对应上面那个图docker0和docker1都有独立的ip

#Docker网络模式相关命令查看
docker network --help
#列出Docker现有网络模式
docker network ls
#查看桥接模式下的网络状态
docker network inspect bridge

2.host模式

docker run时使用--net=host,容器将不会虚拟出IP/端口,而是使用宿主机的IP和端口

docker run -itd --net=host 961769676411

注1:host模式不能使用端口映射和自定义路由规则,这些都与主机一致,-p 与-icc 参数是无效的

初识网络模式

#查看网络模式
ip a
ifconfig
#Docker网络模式相关命令查看
docker network --help
#列出Docker现有网络模式
docker network ls
#查看仅主机模式下的网络状态
docker network inspect host

然后查看一下网络状态

 发现里面没有ip

我们删掉那些多余的镜像:docker rm -f $(docker ps -aq)

 结论仅主机模式是不会分配独立的ip,只会共享相同的ip,而桥接模式是随机分配独立的ip

二、bridge模式

docker run -di --name tomcat1 -p 8080:8080 da505a5bc55a
#--restart=always容器随着Docker引擎启动而启动
docker run -di --name tomcat2 --restart=always -p 8081:8080 da505a5bc55a

通过指令1启动两个tomcat 通过宿主机访问端口8081或8082 访问到映射到的容器内部的8080端口 

 

 接着我们访问一下网址:(ip a        查看ip地址)

 如果还想再来一个直接改一下映射的端口号就行:

 接着我们重新查看一下桥接模式下的网络状态

三、host模式 

在一般情况下仅主机模式对我们更方便些,若我们需要部署单体应用,则仅主机是优选

现在我们再创建一个容器,发现容器将不会虚拟出IP/端口,而是使用宿主机的IP和端口

 而在hosto模式中,我们只能进入第一个创建的容器里

网络模式与数据卷容器挂载的操作

docker run -di -v /javayuyan/software/mydocker:/home/javaxl/docker -p 8083:8080 --name t5 --restart=always da505a5bc55a

挂载后也可以进行访问tomcat: 

四、如何创建自定义网络 

为什么需要自定义网络,因为当使用docker引擎进行部署项目在容器中之后,会被分配随机IP,当关闭之后再开启时,所被分配的IP地址极大可能会不一样。

1.创建自定义网络

docker network create --subnet=172.18.0.0/16 mynetwork

作用:创建容器的时候可以指定IP地址

2.创建容器

docker run -it --name tomcat8 --net=mynetwork -v /javaxl/software/mydocker/:/home/javaxl/docker --ip 172.18.0.8 da505a5bc55a /bin/bash

改成自己的容器就行

3.查看网络模式

docker network inspect mynetwork

 当有部署很多微服务需要暂停时,该自定义的ip也不会随便改变了

总结

到此这篇关于Docker网络配置及部署SpringCloud项目的文章就介绍到这了,更多相关Docker网络配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈docker Dockerfile 指令 VOLUME 介绍

    浅谈docker Dockerfile 指令 VOLUME 介绍

    本篇文章主要介绍了浅谈docker Dockerfile 指令 VOLUME 介绍 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Docker 常用命令整理(实用篇)

    Docker 常用命令整理(实用篇)

    这篇文章主要介绍了Docker 常用命令整理,需要的朋友可以参考下
    2017-02-02
  • Docker安装Nacos详细图文教程

    Docker安装Nacos详细图文教程

    这篇文章主要为大家详细介绍了Docker安装Nacos详细图文教程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 从0开始了解Docker入门(小结)

    从0开始了解Docker入门(小结)

    本篇文章主要介绍了从0开始了解Docker(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Docker 本地导入镜像/保存镜像/载入镜像/删除镜像的方法

    Docker 本地导入镜像/保存镜像/载入镜像/删除镜像的方法

    这篇文章主要介绍了Docker 本地导入镜像/保存镜像/载入镜像/删除镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • docker nginx ssl设置的实现步骤

    docker nginx ssl设置的实现步骤

    本文主要介绍了docker nginx ssl设置的实现步骤,使用docker运行nginx,配置代理,和ssl设置,进行https访问,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • 在Ubuntu 16.04安装与使用Docker的教程详解

    在Ubuntu 16.04安装与使用Docker的教程详解

    Docker是一个应用程序,它使得在容器中运行应用程序进程变得简单和容易,这类应用程序就像虚拟机,只有更便携,更加资源友好,更依赖于主机操作系统。这篇文章主要介绍了在Ubuntu 16.04安装与使用Docker的教程
    2017-01-01
  • 详解Docker如何在前端项目动态插入并使用变量

    详解Docker如何在前端项目动态插入并使用变量

    这篇文章主要为大家详细介绍如何在Docker前端镜像中设置变量以及使用变量的方法,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • Docker安装部署单机版Rocket及基础讲解

    Docker安装部署单机版Rocket及基础讲解

    RocketMQ是阿里巴巴旗下一款开源的MQ框架,经历过双十一考研、Java编程语言实现,有非常好完整生态系统,这篇文章主要介绍了用Docker部署安装单机版Rocket及基础讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
    2022-07-07
  • Docker镜像+nginx 部署 vue 项目的方法

    Docker镜像+nginx 部署 vue 项目的方法

    这篇文章主要介绍了Docker镜像+nginx 部署 vue 项目的方法,帮助大家更好的使用docke镜像,感兴趣的朋友可以了解下
    2020-10-10

最新评论