淺談Docker如何自定義host文件
1、問:我們的真正開發(fā)的時候數(shù)據(jù)庫都是部署在內(nèi)網(wǎng)的,而我們程序連接數(shù)據(jù)庫的時候,需要指定內(nèi)網(wǎng)的地址。但是有時候我們需要遷移環(huán)境,那么我們的后端代碼就得跟著進行修改,有沒有一種好的辦法,不讓我們修改代碼嗎?
答:可以肯定的說是有的,那就是在代碼中指定的不是IP地址,而是域名。我們只需要配置域名和IP地址建立映射關系,所有的項目都無需更改代碼就可以達到目的。
2、問:正式環(huán)境一般都是集群的形式,至少三臺服務器,我們需要買三個域名嗎?而且域名只能綁定公網(wǎng)IP,我們能把數(shù)據(jù)庫公開到外網(wǎng)嗎?為了安全,沒人會把數(shù)據(jù)庫公開到外網(wǎng)的。那該怎么辦呢?
答:那就是修改host文件,在host自定義我們的域名和數(shù)據(jù)庫集群的內(nèi)網(wǎng)IP。在物理機linux上,直接修改/etc/host文件即可。
如果我們的服務以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相關內(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文件,需要事先準備好host文件放在你的代碼根目錄下
MAINTAINER WangScaler@163.com ADD / /wangscaler RUN cat /wangscaler/hosts >> /etc/hosts
如此也是可以的。
四、直接修改
如果你不嫌費勁的話,可以試試。當然如果你的程序以后臺啟動,你環(huán)境不對啟動不起來的話,你也不能進去修改。
這個方法一是累人(集群數(shù)量越多越累),二是不適用(docker沒這個正確的host跑不起來,還有可能你設置的域名正是別人的,那就向人家發(fā)起請求了)。
五、修改鏡像
如果你的項目以docker的形式部署,往往都是先通過dockerfile、docker-compose編譯成鏡像。這時候你可以把鏡像拉下來,修改完host再重新推上去覆蓋原來的鏡像。
總結
最好用的方法就是前兩種,省時省力,一次性搞定。如果你是dockerfile編譯的鏡像,就選第一種;如果你是docker-compose編譯的就直接再docker-compose.yml修改好,一勞永逸。第三種也是可以接受的,但是后兩種你就當不知道,不要嘗試去做。
Docker的更多使用方法,比如創(chuàng)建容器時指定IP地址、以及上述所提到的dockerfile和docker-compose創(chuàng)建容器的方式等等,請參考往期文章Docker的搭建及基本命令。
到此這篇關于淺談Docker如何自定義host文件的文章就介紹到這了,更多相關Docker自定義host文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Mac OSX系統(tǒng) Docker啟用Docker遠程API功能
這篇文章主要介紹了Mac OSX系統(tǒng) Docker啟用Docker遠程API功能的相關資料,需要的朋友可以參考下2016-10-10Docker 倉庫管理和Docker Dockerfile詳解
倉庫(Repository)是集中存放鏡像的地方,以下介紹一下 Docker Hub,當然不止 docker hub,只是遠程的服務商不一樣,操作都是一樣的,對Docker 倉庫管理相關知識感興趣的朋友一起看看吧2023-11-11Linux Docker安裝wordpress的方法詳解教程
這篇文章主要介紹了Linux Docker安裝wordpress的方法詳解教程的相關資料,需要的朋友可以參考下2016-10-10docker 使用mysqldump命令備份導出項目中的mysql數(shù)據(jù)
這篇文章主要介紹了docker 使用mysqldump命令備份導出項目中的mysql數(shù)據(jù)本文通過命令給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12centos6使用docker部署redis主從數(shù)據(jù)庫操作示例
這篇文章主要介紹了centos6使用docker部署redis主從數(shù)據(jù)庫操作,結合實例形式分析了centos6環(huán)境下docker部署redis主從數(shù)據(jù)庫相關命令與使用技巧,需要的朋友可以參考下2020-02-02