这篇文章主要介绍“docker中怎么配置hosts”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“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来管理容器,则在可以在创建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
配置内容的解释如下图
不知道大家有没有好奇为什么没介绍通过dockerfile的方式,因为dockerfile的方式,我试过在dockerfile文件中配置
RUN echo 'www.lyb-geek.com:127.0.0.1' >> /etc/hosts
不过没生效。也试过将hosts的文件放在项目目录下
通过配置如下内容
COPY hosts /etc/hosts
RUN echo 'www.lyb-geek.com:127.0.0.1' >> /etc/hosts
不过没鸟用。可能配法不对,也有可能是因为被k8s影响到了。不过如果容器是通过k8s来管理,推荐直接通过 配置hostAliases这种方式。其实还有一种方式,就是进入容器内部,直接改hosts文件,就跟我们操作宿主机一样。不过这种方式不推荐就是,因为容器一重启或者销毁,配置就丢了
关于“docker中怎么配置hosts”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://juejin.cn/post/7215398854640533560