iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >浅谈Docker如何自定义host文件
  • 173
分享到

浅谈Docker如何自定义host文件

2024-04-02 19:04:59 173人浏览 泡泡鱼
摘要

目录一、命令二、Docker-compose.yml三、dockerfile四、直接修改五、修改镜像总结1、问:我们的真正开发的时候数据库都是部署在内网的,而我们程序连接数据库的时候

1、问:我们的真正开发的时候数据库都是部署在内网的,而我们程序连接数据库的时候,需要指定内网的地址。但是有时候我们需要迁移环境,那么我们的后端代码就得跟着进行修改,有没有一种好的办法,不让我们修改代码吗?

答:可以肯定的说是有的,那就是在代码中指定的不是IP地址,而是域名。我们只需要配置域名和IP地址建立映射关系,所有的项目都无需更改代码就可以达到目的。

2、问:正式环境一般都是集群的形式,至少三台服务器,我们需要买三个域名吗?而且域名只能绑定公网IP,我们能把数据库公开到外网吗?为了安全,没人会把数据库公开到外网的。那该怎么办呢?

答:那就是修改host文件,在host自定义我们的域名和数据库集群的内网IP。在物理机linux上,直接修改/etc/host文件即可。

如果我们的服务以docker的形式部署在linux上。那么docker中的host怎么修改呢?

一、命令

一般正式环境的镜像都是提前编译好的,如果不是采取docker-compose编译的镜像,很难修改host,所以我们只能在启动的时候通过参数配置。


docker run --add-host=www.scalerwang.com:192.168.1.100 --add-host=blog.scalerwang.com:192.168.1.200 --name wangscaler -it mydocker

使用命令参数指定--add-host

二、docker-compose.yml

在yml中指定,编译的docker容器自动配置host文件,yaml相关内容如下


services:
  service-Nginx:
    image: nginx
    extra_hosts:
    - "www.scalerwang.com:192.168.1.100"
    - "blog.scalerwang.com:192.168.1.200"

三、dockerfile

dockerfile没有直接的参数可以直接修改host文件,如果想通过dockerfile修改host文件,需要事先准备好host文件放在你的代码根目录下


MaiNTAINER WangScaler@163.com
ADD / /wangscaler
RUN cat /wangscaler/hosts >> /etc/hosts

如此也是可以的。

四、直接修改

如果你不嫌费劲的话,可以试试。当然如果你的程序以后台启动,你环境不对启动不起来的话,你也不能进去修改。
这个方法一是累人(集群数量越多越累),二是不适用(docker没这个正确的host跑不起来,还有可能你设置的域名正是别人的,那就向人家发起请求了)。

五、修改镜像

如果你的项目以docker的形式部署,往往都是先通过dockerfile、docker-compose编译成镜像。这时候你可以把镜像拉下来,修改完host再重新推上去覆盖原来的镜像。

总结

最好用的方法就是前两种,省时省力,一次性搞定。如果你是dockerfile编译的镜像,就选第一种;如果你是docker-compose编译的就直接再docker-compose.yml修改好,一劳永逸。第三种也是可以接受的,但是后两种你就当不知道,不要尝试去做。
Docker的更多使用方法,比如创建容器时指定IP地址、以及上述所提到的dockerfile和docker-compose创建容器的方式等等,请参考往期文章Docker的搭建及基本命令。

到此这篇关于浅谈Docker如何自定义host文件的文章就介绍到这了,更多相关Docker自定义host文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 浅谈Docker如何自定义host文件

本文链接: https://www.lsjlt.com/news/132995.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈Docker如何自定义host文件
    目录一、命令二、docker-compose.yml三、dockerfile四、直接修改五、修改镜像总结1、问:我们的真正开发的时候数据库都是部署在内网的,而我们程序连接数据库的时候...
    99+
    2024-04-02
  • 浅谈SpringBoot如何自定义Starters
    目录一、Starters原理1.1 Starters场景启动器二、自定义Starters三、代码步骤一、Starters原理 1.1 Starters场景启动器 1、场景需要用到的依...
    99+
    2024-04-02
  • 浅谈VUE uni-app 自定义组件
    1.父组件向子组件传递数据可以通过 props 2.子组件向父组件传递数据可以通过自定义事件,父组件自定义事件,子组件触发父组件的事件,并传传递数据 3.子组件可以定义插槽slot,...
    99+
    2024-04-02
  • 浅谈JAVA在项目中如何自定义异常
    JAVA项目中自定义异常 1.数据返回处理类 @Data public class R<T> implements Serializable { priv...
    99+
    2024-04-02
  • 浅谈自定义校验注解ConstraintValidator
    目录一、前言二、自定义参数校验器三、使用自定义注解一、前言 系统执行业务逻辑之前,会对输入数据进行校验,检测数据是否有效合法的。所以我们可能会写大量的if else等判断逻辑,特别是...
    99+
    2024-04-02
  • 浅谈validator自定义验证及易错点
    目录validator自定义验证及易错点validator自定义验证易错点vue里面如何自定义校验如下也可以自定义校验validator自定义验证及易错点 validator自定义验...
    99+
    2024-04-02
  • 浅谈Java自定义注解相关知识
    目录一、自定义注解格式二、注解本质分析三、注解属性及类型四、注解属性类型五、注解属性赋值简化操作一、自定义注解格式 分析 Java 中自带的 @Override 注解 , 源码如下 ...
    99+
    2024-04-02
  • Docker如何自定义网络
    这篇文章将为大家详细讲解有关Docker如何自定义网络,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Docker自定义网络一.自定义网络介绍介绍常规docker容器启动,可以用–link,进行容器网络绑定...
    99+
    2023-06-22
  • PyCharm如何自定义文件头
    这篇文章给大家分享的是有关PyCharm如何自定义文件头的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。自定义文件头在实际的代码编写中,我们需要定义属于自己的文件头,比如脚本的创建...
    99+
    2024-04-02
  • docker中Dockerfile如何自定义mycentos
    这篇文章主要为大家展示了“docker中Dockerfile如何自定义mycentos”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“docker中Dockerfile如何自定义mycentos”...
    99+
    2023-06-04
  • 浅谈几种Java自定义异常处理方式
    目录自定义异常类错误编码处理断言处理应用日志处理异常消息模板和格式化处理总结在Java中,异常是一种常见的处理机制。当程序运行出现错误时,Java会默认抛出一个异常,并通过栈回溯信息...
    99+
    2023-05-19
    Java自定义异常 Java 异常
  • Android自定义控件如何在XML文件中使用自定义属性
    目录前言一、为什么需要自定义控件二、具体步骤1.首先我们创建一个 layout xml文件:2.为自定义控件创建java类:3.在res/values下,新建一个attrs.xml文...
    99+
    2023-05-14
    Android XML自定义属性 Android 自定义控件
  • docker如何自定义网络问题
    目录首先看看网卡的信息docker网络原理veth-pair技术容器互联 --link容器互联 - 自定义网络总结首先看看网卡的信息 通过ip addr命令可以看到,这里有三个网卡,...
    99+
    2023-03-12
    docker自定义网络 docker网络 自定义网络
  • 浅谈java自定义中类两个对象的比较
    目录 实现比较两个对象是否相同 1.前置代码 1.学生类 2.示例  3.输出  4.原因 2.那么我们要怎么做呢 1.对Student类中重新实现quals方法(即对equals方法重写)  2.完整代码如下: 3.具体操作 4.演示 ...
    99+
    2023-09-20
    java 开发语言 学习 学习方法 程序人生 intellij-idea
  • 如何在Docker中自定义网络
    本篇文章给大家分享的是有关如何在Docker中自定义网络,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1 默认网络docker0用vm虚拟机测试,未启动docker 系统中有两...
    99+
    2023-06-15
  • Docker如何实现自定义网络
    小编给大家分享一下Docker如何实现自定义网络,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、自定义网络实现容器互联四类网络模式,使用docker netwo...
    99+
    2023-06-22
  • 浅谈让@Value更方便的Spring自定义转换类
    目录一、万能的字符串二、自定义转换类三、总结一、万能的字符串 当然,任何时候都可以使用字符串作为属性的值,从配置文件里读取出来,如下: 配置文件内容为: pkslow.admin=...
    99+
    2024-04-02
  • 浅谈ASP 用户控件与自定义控件的异同和应用场景
    ASP 用户控件是基于 ASP.NET 服务器端的控件,它允许你在一个页面中定义一个可重用的组件。你可以将 ASP 用户控件添加到工具箱中,然后将其拖放到页面中。ASP 用户控件具有以下特点: 它可以被多次使用,并且可以嵌套使用。 它可...
    99+
    2024-02-22
    ASP 用户控件与自定义控件的ASP 用户控件 自定义控件 代码重用 Web 开发 ASP.NET。
  • 如何使用host文件绑定域名
    在host文件中绑定域名的方法:1.在计算机系统盘中打开hosts文件;2.根据原有格式添加需要绑定的域名,保存即可;在host文件中绑定域名的方法首先,在计算机中打开系统磁盘;系统磁盘打开后,在磁盘中查找到查找到“hosts”文件,hos...
    99+
    2024-04-02
  • docker中Dockerfile如何自定义tomcat镜像
    小编给大家分享一下docker中Dockerfile如何自定义tomcat镜像,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   &...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作