docker中配置hosts的方法实现

 更新时间:2023年04月28日 09:10:47   作者:linyb极客之路  
本文主要介绍了docker中配置hosts的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

不知道大家有没有遇到这种场景,部署在docker环境的项目,需要通过域名访问外部一些资源,但因为没有配置dns解析,因此需要通过配置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的方法实现的文章就介绍到这了,更多相关docker配置hosts内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker容器通信参数使用及link参数介绍

    docker容器通信参数使用及link参数介绍

    这篇文章主要介绍了docker容器通信参数使用及link参数介绍,link的原理就是在/etc/hosts里面添加了一个alias的名称,本文通过案例分析给大家详细讲解,需要的朋友可以参考下
    2022-09-09
  • Docker方式启动tomcat访问首页出现404错误

    Docker方式启动tomcat访问首页出现404错误

    这篇文章主要介绍了Docker方式启动tomcat访问首页出现404错误。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 使用 docker 部署 APISIX的详细介绍

    使用 docker 部署 APISIX的详细介绍

    这篇文章主要介绍了使用 docker 部署 APISIX的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • Docker 隔离与限制原理介绍

    Docker 隔离与限制原理介绍

    这篇文章主要介绍了Docker 隔离与限制原理,对于 Docker 等大多数 Linux 容器来说,Cgroups 技术是用来制造约束的主要手段,而 Namespace 技术则是用来修改进程视图的主要方法,下文相关介绍,需要的朋友可以参考一下
    2022-04-04
  • docker使用Dockerfile构建镜像的方法

    docker使用Dockerfile构建镜像的方法

    这篇文章主要介绍了docker使用Dockerfile构建镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Docker容器compose容器集群的快速编排方式

    Docker容器compose容器集群的快速编排方式

    这篇文章主要介绍了Docker容器compose容器集群的快速编排方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Docker实现进入容器内部的方法

    Docker实现进入容器内部的方法

    这篇文章主要介绍了Docker实现进入容器内部的方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 清理docker磁盘空间的方法总结(附详细讲解)

    清理docker磁盘空间的方法总结(附详细讲解)

    docker 镜像特别容易占空间,稍微不注意可能磁盘爆满,所以本文给大家详细介绍了如何清理 docker 磁盘空间,并通过代码示例给大家讲解的非常详细,需要的朋友可以参考下
    2024-02-02
  • 解决docker网络错误(network bridge not found)

    解决docker网络错误(network bridge not found)

    这篇文章主要介绍了解决docker网络错误(network bridge not found)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • docker常用命令总结之安装、镜像、容器基本操作

    docker常用命令总结之安装、镜像、容器基本操作

    这篇文章主要介绍了docker常用命令总结之安装、镜像、容器基本操作,需要的朋友可以参考下
    2017-05-05

最新评论