溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Docker如何自定義host文件

發(fā)布時間:2021-08-19 11:21:30 來源:億速云 閱讀:433 作者:chen 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Docker如何自定義host文件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Docker如何自定義host文件”吧!

目錄
  • 一、命令

  • 二、docker-compose.yml

  • 三、dockerfile

  • 四、直接修改

  • 五、修改鏡像

  • 總結(jié)

1、問:我們的真正開發(fā)的時候數(shù)據(jù)庫都是部署在內(nèi)網(wǎng)的,而我們程序連接數(shù)據(jù)庫的時候,需要指定內(nèi)網(wǎng)的地址。但是有時候我們需要遷移環(huán)境,那么我們的后端代碼就得跟著進(jìn)行修改,有沒有一種好的辦法,不讓我們修改代碼嗎?

答:可以肯定的說是有的,那就是在代碼中指定的不是IP地址,而是域名。我們只需要配置域名和IP地址建立映射關(guān)系,所有的項目都無需更改代碼就可以達(dá)到目的。

2、問:正式環(huán)境一般都是集群的形式,至少三臺服務(wù)器,我們需要買三個域名嗎?而且域名只能綁定公網(wǎng)IP,我們能把數(shù)據(jù)庫公開到外網(wǎng)嗎?為了安全,沒人會把數(shù)據(jù)庫公開到外網(wǎng)的。那該怎么辦呢?

答:那就是修改host文件,在host自定義我們的域名和數(shù)據(jù)庫集群的內(nèi)網(wǎng)IP。在物理機(jī)linux上,直接修改/etc/host文件即可。

如果我們的服務(wù)以docker的形式部署在linux上。那么docker中的host怎么修改呢?

一、命令

一般正式環(huán)境的鏡像都是提前編譯好的,如果不是采取docker-compose編譯的鏡像,很難修改host,所以我們只能在啟動的時候通過參數(shù)配置。

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

使用命令參數(shù)指定--add-host

二、docker-compose.yml

在yml中指定,編譯的docker容器自動配置host文件,yaml相關(guān)內(nèi)容如下

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

三、dockerfile

dockerfile沒有直接的參數(shù)可以直接修改host文件,如果想通過dockerfile修改host文件,需要事先準(zhǔn)備好host文件放在你的代碼根目錄下

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

如此也是可以的。

四、直接修改

如果你不嫌費勁的話,可以試試。當(dāng)然如果你的程序以后臺啟動,你環(huán)境不對啟動不起來的話,你也不能進(jìn)去修改。
這個方法一是累人(集群數(shù)量越多越累),二是不適用(docker沒這個正確的host跑不起來,還有可能你設(shè)置的域名正是別人的,那就向人家發(fā)起請求了)。

五、修改鏡像

如果你的項目以docker的形式部署,往往都是先通過dockerfile、docker-compose編譯成鏡像。這時候你可以把鏡像拉下來,修改完host再重新推上去覆蓋原來的鏡像。

總結(jié)

最好用的方法就是前兩種,省時省力,一次性搞定。如果你是dockerfile編譯的鏡像,就選第一種;如果你是docker-compose編譯的就直接再docker-compose.yml修改好,一勞永逸。第三種也是可以接受的,但是后兩種你就當(dāng)不知道,不要嘗試去做。
Docker的更多使用方法,比如創(chuàng)建容器時指定IP地址、以及上述所提到的dockerfile和docker-compose創(chuàng)建容器的方式等等,請參考往期文章Docker的搭建及基本命令。

到此,相信大家對“Docker如何自定義host文件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI