docker中配置hosts的方法實(shí)現(xiàn)
前言
不知道大家有沒有遇到這種場(chǎng)景,部署在docker環(huán)境的項(xiàng)目,需要通過域名訪問外部一些資源,但因?yàn)闆]有配置dns解析,因此需要通過配置hosts來進(jìn)行訪問。本文就來聊聊可以通過哪些方式可以在docker容器中配置hosts
配置的方法
方法一:?jiǎn)?dòng)容器的時(shí)候加上“--add-host”
示例:
docker run --add-host='www.lyb-geek.com:127.0.0.1' --add-host='www.lyb-geek.cn:192.168.3.1' --name hello-docker -it 192.168.0.1:5002/lybgeek/hello-docker:1.0
方法二:如果是通過docker-compose啟動(dòng)容器,可以配置extra_hosts屬性
示例
version: '3.7'
services:
hello-docker:
restart: always
image: 192.168.0.1:5002/lybgeek/hello-docker:1.0
extra_hosts:
- "www.lyb-geek.com:127.0.0.1"
- "www.lyb-geek.cn:192.168.3.1"
container_name: hello-docker
network_mode: bridge
ports:
- "80:80"
environment:
- ENV=dev方法三:如果是通過k8s來管理容器,則在可以在創(chuàng)建pod的yaml文件通過hostAliases添加域名IP映射
示例:
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: dev
name: hello-docker-deployment
labels:
app: hello-docker
spec:
replicas: 3
selector:
matchLabels:
app: hello-docker
template:
metadata:
labels:
app: hello-docker
spec:
hostAliases:
- hostnames:
- www.lyb-geek.com
ip: 127.0.0.1
- hostnames:
- www.lyb-geek.cn
ip: 192.168.3.1
imagePullSecrets:
- name: default-secret
containers:
- name: hello-docker
image: 192.168.0.1:5002/lybgeek/hello-docker:1.0
imagePullPolicy: Always
ports:
- containerPort: 80
env:
- name: ENV
value: "dev"核心配置
spec:
hostAliases:
- hostnames:
- www.lyb-geek.com
ip: 127.0.0.1
- hostnames:
- www.lyb-geek.cn
ip: 192.168.3.1配置內(nèi)容的解釋如下圖

總結(jié)
不知道大家有沒有好奇為什么沒介紹通過dockerfile的方式,因?yàn)閐ockerfile的方式,我試過在dockerfile文件中配置
RUN echo 'www.lyb-geek.com:127.0.0.1' >> /etc/hosts
不過沒生效。也試過將hosts的文件放在項(xiàng)目目錄下
通過配置如下內(nèi)容
COPY hosts /etc/hosts RUN echo 'www.lyb-geek.com:127.0.0.1' >> /etc/hosts
不過沒鳥用。可能配法不對(duì),也有可能是因?yàn)楸籯8s影響到了。不過如果容器是通過k8s來管理,推薦直接通過 配置hostAliases這種方式。其實(shí)還有一種方式,就是進(jìn)入容器內(nèi)部,直接改hosts文件,就跟我們操作宿主機(jī)一樣。不過這種方式不推薦就是,因?yàn)槿萜饕恢貑⒒蛘咪N毀,配置就丟了
到此這篇關(guān)于docker中配置hosts的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)docker配置hosts內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker部署前后端分離項(xiàng)目的三種方式小結(jié)
本文主要介紹了Docker部署前后端分離項(xiàng)目的三種方式小結(jié),包含通過兩個(gè)容器部署,通過compose編排容器自動(dòng)部署和將前后端項(xiàng)目打成一個(gè)鏡像部署的三種方式,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
docker安裝,yum安裝失敗解決方案,阿里云鏡像安裝過程
在配置Yum源遇到問題時(shí),嘗試使用阿里云鏡像可以有效解決,本文詳細(xì)介紹了如何配置阿里云源及安裝Docker的步驟,首先,若Yum源配置出錯(cuò),建議更換為阿里云鏡像;其次,詳述了安裝Docker的具體命令,包括啟用阿里云源和安裝過程中的選擇提示2024-11-11
Docker容器如何訪問宿主機(jī)的Mysql數(shù)據(jù)庫
使用Docker能實(shí)現(xiàn)服務(wù)的容器化,并使用容器間網(wǎng)絡(luò)在它們之間進(jìn)行通信,下面這篇文章主要給大家介紹了關(guān)于Docker容器如何訪問宿主機(jī)的Mysql數(shù)據(jù)庫,需要的朋友可以參考下2024-04-04
Dockerfile的CMD與ENTRYPOINT的區(qū)別
CMD和ENTRYPOINT的區(qū)別在于CMD提供默認(rèn)的執(zhí)行指令,而ENTRYPOINT定義容器啟動(dòng)時(shí)運(yùn)行的命令,下面就來詳細(xì)的介紹一下這兩者的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12
docker修改默認(rèn)ip的實(shí)現(xiàn)步驟
在 Docker 中,默認(rèn)的網(wǎng)絡(luò)是 bridge 網(wǎng)絡(luò),它通常使用 172.17.0.0/16 這個(gè)網(wǎng)段,那么如何修改,本文就來詳細(xì)的介紹下docker修改默認(rèn)ip的實(shí)現(xiàn)步驟,感興趣的可以了解一下2024-02-02
Docker部署nGrinder性能測(cè)試平臺(tái)過程解析
這篇文章主要介紹了Docker部署nGrinder性能測(cè)試平臺(tái)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
解決Docker容器時(shí)區(qū)及時(shí)間不同步問題的方法
這篇文章主要介紹了解決Docker容器時(shí)區(qū)及時(shí)間不同步問題的方法,有效的解決了Docker容器時(shí)間同步問題,有興趣的可以了解一下。2016-12-12
harbor可視化私有鏡像倉庫環(huán)境及服務(wù)部署示例
這篇文章主要為大家介紹了harbor可視化私有鏡像倉庫環(huán)境及服務(wù)部署示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04

