温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Docker如何自定义host文件

发布时间:2021-08-19 11:21:30 来源:亿速云 阅读:433 作者:chen 栏目:开发技术

本篇内容主要讲解“Docker如何自定义host文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker如何自定义host文件”吧!

目录
  • 一、命令

  • 二、docker-compose.yml

  • 三、dockerfile

  • 四、直接修改

  • 五、修改镜像

  • 总结

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文件”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI