docker中配置hosts的方法實(shí)現(xiàn)
前言
不知道大家有沒有遇到這種場景,部署在docker環(huán)境的項目,需要通過域名訪問外部一些資源,但因為沒有配置dns解析,因此需要通過配置hosts來進(jìn)行訪問。本文就來聊聊可以通過哪些方式可以在docker容器中配置hosts
配置的方法
方法一:啟動容器的時候加上“--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啟動容器,可以配置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的方式,因為dockerfile的方式,我試過在dockerfile文件中配置
RUN echo 'www.lyb-geek.com:127.0.0.1' >> /etc/hosts
不過沒生效。也試過將hosts的文件放在項目目錄下
通過配置如下內(nèi)容
COPY hosts /etc/hosts RUN echo 'www.lyb-geek.com:127.0.0.1' >> /etc/hosts
不過沒鳥用??赡芘浞ú粚Γ灿锌赡苁且驗楸籯8s影響到了。不過如果容器是通過k8s來管理,推薦直接通過 配置hostAliases這種方式。其實(shí)還有一種方式,就是進(jìn)入容器內(nèi)部,直接改hosts文件,就跟我們操作宿主機(jī)一樣。不過這種方式不推薦就是,因為容器一重啟或者銷毀,配置就丟了
到此這篇關(guān)于docker中配置hosts的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)docker配置hosts內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker查看正在運(yùn)行的容器目錄的實(shí)現(xiàn)方式
這篇文章主要介紹了Docker查看正在運(yùn)行的容器目錄的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
詳解使用 Docker 構(gòu)建 LNMP 環(huán)境
本篇文章主要介紹了使用 Docker 構(gòu)建 LNMP 環(huán)境,詳細(xì)的介紹了配置LNMP 環(huán)境的步驟。具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
使用Docker容器運(yùn)行Mysql實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于使用Docker容器運(yùn)行Mysql的相關(guān)資料,助大家更好的理解和學(xué)習(xí)使用docker,感興趣的朋友可以了解下,需要的朋友可以參考下2023-09-09
docker創(chuàng)建鏡像并上傳云端服務(wù)器的實(shí)現(xiàn)示例
鏡像是一種輕量級、可執(zhí)行的獨(dú)立軟件包,用來打包軟件運(yùn)行環(huán)境和基于運(yùn)行環(huán)境開發(fā)的軟件,本文介紹了如何使用Docker創(chuàng)建鏡像,并將其上傳到云端,感興趣的可以了解一下2023-08-08
Docker 教程之存出和載入鏡像,移除及鏡像實(shí)現(xiàn)原理
這篇文章主要介紹了Docker 教程之存出和載入鏡像,移除及鏡像實(shí)現(xiàn)原理的相關(guān)資料,需要的朋友可以參考下2016-12-12

