代码编织梦想

容器网络

容器使用的网络类型对于用户而言是透明的,无论底层是网桥,overlay,macvlan或者使用特定的网络插件.从容器的视角看,它有一个自己的IP地址,自己的网络接口,网关,路由表,DNS服务器以及其它与网络相关的细节.

发布端口

默认情况下,当使用docker create或者docker run创建一个容器时,它不会向外界发布任何端口.要使端口在docker容器之外可以提供服务,你需要使用–publish或者-p选项.这会创建一条防火墙规则将容器内的端口映射到docker所在的宿主机.下面是一些例子:

选项描述
-p 8080:80将容器内的TCP 80端口映射到宿主机的8080端口.
-p 192.168.1.100:8080:80将容器内的TCP 80端口映射到宿主机192.168.1.100 ip的8080端口.
-p 8080:80/udp将容器内的UDP 80端口映射到宿主机的8080端口.
-p 8080:80/tcp -p 8080:80/udp将容器内的TCP 80端口映射到宿主机的8080端口,将容器内的UDP 80端口映射到宿主机的8080端口.

IP地址和hostname

默认情况下,容器连接的每个一个docker网络都会给这个容器分配一个IP地址 .这个IP地址是从所连接网络的地址池中分配的.所以Docker就像一个高效的DHCP服务器。每个网络也有默认子网和网关.

当容器启动时只能通过–network参数连接到唯一的一个网络.然而,你可以通过docker network connect命令将运行中的容器连接到不同的网络.你还可以通过–ip或者–ip6选项为容器指定分配的IP地址.

当你使用docker network connect命令将容器连接到一个特定的网络时,你也可以通过–ip或者–ip6选项为容器指定分配的IP地址.

容器默认的hostname是容器ID,你可以通过–hostname来覆盖默认的hostname.当连接到一个指定的网络时,你可以使用–alias选项来指定一个别名.

DNS服务

默认情况下,容器继承宿主机定义在/etc/resolv.conf中的DNS配置.使用网桥的容器使用这个文件的一个拷贝.当容器使用定制的网络时,将会使用Docker内嵌的DNS服务器,当会将DNS查找请求转发给宿主机上配置的DNS服务器.
/etc/hosts中的自定义主机将不会被容器继承,要为你的容器添加额外的主机,你可以通过docker run中的特定选项来指定.

选项描述
–dns指定DNS服务器的IP地址,可以指定多个.如果指定的IP地址不可用,Google的公共DNS server 8.8.8.8 将会被添加.
–dns-search指定使用内嵌DNS服务的主机域名.
–dns-optDNS选项的key-value.你需要通过查阅相关的系统手册来确认合法的选项.
–hostname容器的hostname,如果未指定默认为容器ID.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/happyAnger6/article/details/110306195

简单实现单机运行 Kubernetes (k8s)的 4 种方法-爱代码爱编程

简单实现单机运行 Kubernetes (k8s)的 4 种方法。 Kubernetes 是一个开源的容器编排平台。它由 Google 开发,为自动化部署、扩展和管理容器化应用提供了一个开源系统。虽然大多数人在云环境中运行 Kubernetes,但在本地运行 Kubernetes 集群不仅是可能的,它还至少有两个好处: • 在决定使用 Kubernete

sharelatex(Overleaf)的安装与使用-爱代码爱编程

20201129 - 引言 今年上半年的时候,安装并使用了sharelatex的docker化环境,但是当时也没怎么记录,现在想要重装就挺麻烦感觉。所以这里专门写一篇文章记录这个使用过程。 记录的方式是这样的,这次就是按照套路直接先安装上,然后遇到了甚么问题就解决甚么问题。 安装过程 初始安装 本次安装过程是20201129,在dockerhub

在linux中的docker下搭建cuda环境-爱代码爱编程

显卡驱动安装 根据自己的需要来安装相应的驱动版本 sudo apt install nvidia-drivers-440 安装Docker sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get update sudo apt-get inst

最小化安装kubesphere报错-爱代码爱编程

报错如下: TASK [preinstall : Stop if Helm is not available] ****************************** fatal: [localhost]: FAILED! => {     "assertion": "helm_check.rc == 0",      "changed":

Swarm 中最重要的概念 - 每天5分钟玩转 Docker 容器技术(94)-爱代码爱编程

Swarm 中最重要的概念 - 每天5分钟玩转 Docker 容器技术(94) 原创 CloudMan CloudMan 2017-11-17 第94篇 Swarm 中最重要的概念     从主机的层面来看,Docker Swarm 管理的是 Docker Host 集群。所以先来讨论一个重要的概念 - 集群化(Clustering)。 服务

如何创建 Swarm 集群?- 每天5分钟玩转 Docker 容器技术(95)-爱代码爱编程

如何创建 Swarm 集群?- 每天5分钟玩转 Docker 容器技术(95) 原创 CloudMan CloudMan 2017-11-20 第95篇 如何创建 Swarm 集群?     本节我们将创建三节点的 swarm 集群。 swarm-manager 是 manager node,swarm-worker1 和 swarm-w

dns域名解析过程-爱代码爱编程

DNS即Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的ip地址。人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。比如:上网时输入的www.baidu.com会自动转换成为2

golang:第三方库,dns解析库miekg/dns-爱代码爱编程

文章目录 一、dns解析库miekg/dns1.1 dns查询 一、dns解析库miekg/dns 第三方dns库miekgmiekg/dns 可以做dns查询、可以做local dns、可以做授权dns。 由于下载不到:golang.org/x/crypto/ed25519,需要将代码中相关的代码删除掉,做dns查询时不会用到该部分代码。

5-1:名字与地址转换-爱代码爱编程

gethostbyname,gethostbyaddr struct hostent* gethostbyname(const char*hostname); struct hostent { char* h_name;// 主机名 char** h_aliases;// 别名列表 int h_addrtype; int h_length;//

24_linux笔记-DNS服务-爱代码爱编程

文章目录 知识点1 DNS服务1、完全限定域名 FQDN2、域的分类3、DNS解析示例:修改/etc/hosts文件示例:解析网址知识点2 DNS解析过程知识点3 dns服务的类型知识点4 域名服务器配置1、安装bind、bind-utils2、配置文件3、修改配置4、配置指定域的解析文件知识点5 资源记录类型 参考博客 https://blog

DNS用的是TCP协议还是UDP协议-爱代码爱编程

DNS占用53号端口,同时使用TCP和UDP协议。那么DNS在什么情况下使用这两种协议? DNS在区域传输的时候使用TCP协议,其他时候使用UDP协议。 DNS区域传输的时候使用TCP协议: 1.辅域名服务器会定时(一般3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,会执行一次区域传送,进行数据同步。区域传送使用TCP而不是UDP,因

网络-DNS域名系统详解与DNS攻击-爱代码爱编程

目录 简介 互联网域名结构 顶级域名 二级域名 域名服务器 根域名服务器 顶级域名服务器 权限域名服务器 本地域名服务器 DNS查询 报文格式 查询 DNS攻击实战 域名劫持 DNS欺骗 DNS防范 参考 简介 DNS(Domain Name System,域名系统)是互联网使用的命名系统,是一个分布式数据库,用来把域