Docker 没有为每个容器专门定制镜像,那么怎么自定义配置容器的主机名和DNS配置?秘诀就是它利用虚拟文件来挂载到容器的3个相关的配置文件。

进入容器内使用mount命令可以看到挂载信息,这种机制可以让宿主机DNS信息发生更新后,所有Docker容器的 dns 配置通过 /etc/resolv.conf 文件立刻得到更新。

如果用户想自行配置容器某些属性,在启动程序之中添加如下的参数即可:

1.-h HOSTNAME or --hostname=HOSTNAME 设定容器的主机名,它会被写到容器的/etc/hostname 和 /etc/hosts。
但它在容器外部看不到,既不会在docker ps中显示,也不会在其它容器的 /etc/hosts看到
2.
--dns=IP_ADDRESS 添加DNS服务器到容器的 /etc/resolv.conf中,让容器利用这个服务器来解析所有不在 /etc/hosts 中的主机名

注意:如果没有--dns选项时,Docker会默认用宿主机上的 /etc/resolv.conf 来配置容器。

容器访问控制

容器的访问控制,主要通过Linux上的 iptables 防火墙来进行管理和实现。

容器访问外部网络[容器所有到外部网络的连接,源地址都会被NAT成本地系统的IP地址,这是使用iptables 的源地址伪装操作实现的。]

容器要想访问外部网络,需要本地系统的转发支持,在linux系统中,检查转发是否打开

[root@server ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

如果为0,说明没有开启转发,则需要手动打开

[root@server ~]# sysctl -w net.ipv4.ip_forward=1

如果在启动Docker服务的时候指定 --ip-forward=true,Docker就会自动设定系统的 ip_forward 参数为1。

[root@server ~]# docker run --rm --name myCentos -it centos /bin/bash   #启动一个容器
[root@2bdfb90cb3e0 /]# ping www.baidu.com  #测试是否能够访问外部网络

容器之间访问

容器之间互相访问,需要两方面的支持。

  • 容器的网络拓扑是否已经互联。默认情况下,所有容器都会被连接到 docker0 网桥上
  • 本地系统的 iptables 是否允许通过

默认情况下,容器之间是可以相互通信的

访问所有的端口

当启动Docker 服务时,默认会添加一条转发策略到iptables 的FORWARD链上。策略为通过(ACCEPT)还是禁止(DROP)取决于配置 --icc=true 还是 --icc=false。如果手动指定 --iptables=false 则不会添加iptables 规则。

可见,默认情况下,不同容器之间是允许网络互通的。如果是为了安全考虑,可以在/etc/default/docker 文件中配置 DOCKER_OPTS=--icc=false 来禁止它。

 

docker配置dns与容器的访问控制(6)的更多相关文章

  1. 通过Docker配置DNS服务器

    1. 概述 DockerHub中的 sameersbn/bind 镜像提供了搭建DNS服务器的功能,本文给出使用该镜像搭建DNS服务器的例子. 2. 环境 DNS服务器主机 IP:10.11.150. ...

  2. Docker配置 DNS

    Docker 没有为每个容器专门定制镜像,那么怎么自定义配置容器的主机名和 DNS 配置呢? 秘诀就是它利用虚拟文件来挂载到来容器的 3 个相关配置文件. 在容器中使用 mount 命令可以看到挂载信 ...

  3. Docker(十八)-Docker配置DNS

    Linux系统配置DNS的时候有一个问题,就是你在/ect/resolv.conf文件中添加上nameserver XXX.XXX.XXX.XXX的时候,当时是生效的,但是机器重启之后就失效了,所以我 ...

  4. 【Devops】【docker】【CI/CD】docker启动的Jenkins容器 - 系统管理 - 全局工具配置 - 自动安装JDK、Maven、Git、Docker

    本篇适用于jenkins是启动的docker容器,自动安装JDK  Maven  Git   Docker等全局工具 ========================================= ...

  5. Docker配置容器位置和小技巧

    Docker使用小技巧 清理全部停止的docker容器 有时候我们会有很多已经停止的容器或者由于错误强制退出不能用的容器,那我们就需要删除了,但是我们一个一个的rm删除很麻烦,有多少容器就要rm多少次 ...

  6. centos7下安装docker(12.3容器之间的连通性)

    我们接着盗图,如下: 在这张图上,可以看到,如果两个容器使用同一个bridge,那么两个容器之间是互相能通的 可以看到两个容器在同一个bridge下是可以互相ping通的 当两个容器在不同的bridg ...

  7. docker配置与实践#可以好好看看

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 L ...

  8. [docker swarm] 从单容器走向负载均衡部署

    背景 之前写过<<docker-compose真香>> 和<docker-compose.docker stack前世今生>两篇博客, 回顾一下思路: ① dock ...

  9. [转帖]龙芯:Docker 配置与实践清单

    Docker 配置与实践清单 http://www.sohu.com/a/254904706_198222 文章对来官方文档及 Docker Links[1] 中链接内容进行归档整理,包含了日常工作中 ...

随机推荐

  1. cento升级openssl依旧显示老版本

    不久前拿到了一季度的服务器漏洞扫描报告,还是一些老生常谈的软件.按照报告上的漏洞一个个处理,开始升级openssl的时候一切都很顺利,上传源码包,解压,编译,安装,全部都没有报错.opessl --v ...

  2. Aho-Corasick automaton

    目录 KMP 算法 BF 算法 KMP 算法 避免重复遍历 算法思想 代码实现 匹配函数 求 next 数组 字典树 多模匹配 构造字典树 字典树的结构体定义 构造算法 伪代码 代码实现 失配指针 功 ...

  3. 关于github报错:ssh: connect to host github.com port 22: Connection timed outfatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.

    当执行git命令如:git clone.git pull等等 出现报错:ssh: connect to host github.com port 22: Connection timed outfat ...

  4. JDK常用命令行工具使用

  5. PTA | 1008 数组元素循环右移问题 (20分)

    一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1--AN-1)变换为(AN-M -- AN-1 A0 ...

  6. java接口自动化(三) - 手工接口测试到自动化框架设计之鸟枪换炮

    1.简介 上一篇宏哥介绍完了接口用例设计,那么这一章节,宏哥就趁热打铁介绍一下,接口测试工具.然后小伙伴们或者童鞋们就可以用接口测试工具按照设计好的测试用例开始执行用例进行接口手动测试了.关于手动测试 ...

  7. yii2框架学习笔记

    1.去掉yii2模版默认的头部和脚部的两种方法: (1) 第一种 $this->layout = false; $this->render('index'); (2) 第二种(partia ...

  8. 这个案例写出来,还怕跟面试官扯不明白 OAuth2 登录流程?

    昨天和小伙伴们介绍了 OAuth2 的基本概念,在讲解 Spring Cloud Security OAuth2 之前,我还是先来通过实际代码来和小伙伴们把 OAuth2 中的各个授权模式走一遍,今天 ...

  9. 来,让我们一起来学习VIM

    什么是VIM vim是一个高度可定制的文本编辑器,被很多专业的程序员使用,并获得了程序员的一致好评. 下图是Vim的官网vim.org 你可以在Vim的官网免费下载并使用Vim,同样可以在Vim官网学 ...

  10. docker、docker-compose安装,卸载

    docker win10安装 一.安装 https://www.docker.com/docker-windows 二.设置 控制面板-->程序-->Hyper-V linux安装: ht ...