一、查看docker支持的网络类型

docker network ls

bridge:容器使用虚拟交换机的进行通信

host:使用宿主机的网络

none:只给容器分配一个lo的网卡,无法和外界进行通信

使用 docker run --network {host|none|bridge}指定通信方式

bridge:类似于虚拟机的物理桥接模式,容器与Host属于同一网段并且网络是互通的,运行容器默认是这种网络桥接模式,使用 docker run -it 容器id /bin/bash,

在容器中使用yum -y install net-tools 就可以使用ifconfig查看容器的IP地址

docker0为虚拟交换机,使用brctl show来查看虚拟交换机开通的虚拟接口,如果没有brctl则需要安装:yum -y install bridge-utils

====================================================================

查看网络映射

iptables -t nat -L -n

端口映射

随机映射:

docker run -d -P --name duankou 镜像名称    (docker ps -l 查看随机端口号)

指定映射端口:

docker run -d -p 8080:80 -name my_nginx 镜像名称    (将容器的80端口映射给本地host的8080端口)

docker run -d -p  192.168.1.100:8080:80 -name my_nginx  镜像名称 (将容器的80端口映射给本地192.168.1.100的8080端口,适用于多网卡映射)

指定多个映射端口

docker run -d -p 8080:80 -p 443:443 -name my_nginx 镜像名称    (将容器的80端口映射给本地host的8080端口,将容器的443端口映射给本地host的443端口)

共享容器网络(可以理解为一台主机上运行俩个进程)

docker run -it  --name web1 --rm  容器id或者名称  /bin/bash

然后在容器中执行ifconfig

创建另外一个容器

docker run -it --network container:cfd9393ea161 --name nginx-2 --rm 另外一个镜像id或者名称 /bin/bash   #--network指定的是需要共享网络的容器

因为网络已经共享了一个开了80端口的容器,所以我们将nginx的端口改为8080,然后启动,  这样在俩个容器中可以看到俩个容器启动的nginx了,

可以理解为共享网络,但是其它空间是不共享的,

修改docker0的ip地址:

vim /etc/docker/daemon.json

{
"registry-mirrors": ["https://4lymnb6o.mirror.aliyuncs.com"],
"bip":"10.1.0.1/16"
}

添加一个bip字段,记得使用,隔开字段,属于python的字典格式

然后重启docker即可 systemctl restart docker

修改docker0的DNS地址

{
"registry-mirrors": ["https://4lymnb6o.mirror.aliyuncs.com"],
"bip": "10.1.0.1/16",
"dns": ["123.150.150.150","8.8.8.8"]

}

重启docker'即可,添加一个dns字段

docker run -d --name nginx-1 --hostname nginx-1 --rm -p 11111:80 498 -g 'daemon off;'      #498为镜像id的前三位

进入到容器中,发现ip地址和dns地址都修改过来了

==============================================================================================================================

docker简单介绍---网络端口管理的更多相关文章

  1. Docker简单介绍

    Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...

  2. docker简单介绍---部署私有docker仓库Registry

    1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有 ...

  3. docker简单介绍----镜像和容器管理

    docker可以分为三部分:docker镜像   docker仓库  docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...

  4. Docker系列(一):Docker简单介绍

    Docker简介: 多语言和框架:支持多语言和框架以及语言框架的扩展机制 多服务:开放的核心服务以及服务的扩展机制 多云和多IaaS技术:支持多种IaaS技术和多云的部署,包括公有云和私有云 Dock ...

  5. docker简单介绍----Dockerfile命令

    DockerFile的组成部署: 下面优先介绍下Dcokerfile的基础指令 一.CMD指令:容器启动时要莫热门运行的命令,如果有多个CMD指定,最后一个生效 使用方法: CMD ["ex ...

  6. docker 简单介绍及基础命令运用

    一.什么是docker? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. 简单的来讲Docker实际上就是一个大型容器.容器是完全使用沙箱机制,相互之间不 ...

  7. docker 简单介绍与安装

    主机虚拟化(vmware,visual box等) type-Ⅰ type=Ⅱ 主机虚拟化是隔离最彻底的,但是由于多隔了一个虚拟的操作系统,性能会慢一些. 容器虚拟化(docker等) 隔离没有主机虚 ...

  8. docker简单介绍----存储

    docker容器 中使用Volumes来实现数据的持久性,因为容器的删除会丢失数据,而关闭或者重启容器不会丢失数据 docker run -v即可使用Volumes 1.docker-managed ...

  9. docker简单介绍。

    docker是啥? 一.概念? // 和运维有关的工具,和开发没有很大的关系.只需要去调试项目,将项目运行更迅速. 二.作用? 1.只需要关心项目的编写和调试,不需要关心具体的项目需要运行在哪里,并且 ...

随机推荐

  1. 如何将多个C文件链接在一起----Makefile编写及make指令

    需使用GCC编译器,关于MinGW的安装指南:https://people.eng.unimelb.edu.au/ammoffat/teaching/20005/Install-MinGW.pdf 单 ...

  2. python的web运用

    ---恢复内容开始--- 对于大多数学过编程语言的人来说都知道大部分的编程语言都可以用来开发web运用,对于python来说也是可以的,不过对于web开发来说用python你可以选择 两个不同的框架, ...

  3. offsetof(s,m)解析

    https://www.cnblogs.com/jingzhishen/p/3696293.html sizeof()用法汇总 sizeof()功能:计算数据空间的字节数1.与strlen()比较  ...

  4. 【学习总结】Git学习-参考廖雪峰老师教程-总

    公元2018-10-21 实验室台式机 win7 64位 参考教程: 廖雪峰Git教程 其他资料:Git-book 北大一只总结的笔记,最终整理的时候可以参考:Git笔记 评论区看到的另一个人,总结在 ...

  5. 接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63

    一.背景 最近项目中有个需求,就是需要把一个byte[]数组上传到服务端.但是我发现发送的byte数组和服务端接收的数组不一样,所有的正数在传递时正确,数组长度也没变化,但是负数变成了63或者负数全部 ...

  6. Ubuntu shutdown

    gsettings set com.canonical.indicator.session suppress-logout-restart-shutdown true

  7. jsp篇 之 脚本元素

    jsp的脚本元素 : 第一种:表达式 (类似输出语句) 表达式 形式:<%= %> 看源码发现[翻译]到java文件中的位置: [out.print(..)]里面的参数. 所以System ...

  8. 根据字段获取DataTable包含某个值的数据

    dt.Select("身份证号='" + list[i].PersonalId + "' and 培训完成日期 like '" + year + "% ...

  9. 深入理解JVM(3)——类加载机制

    1.类加载时机 类的整个生命周期包括了:加载( Loading ).验证( Verification ).准备( Preparation ).解析( Resolution ).初始化( Initial ...

  10. 基于前后端分离的身份认证方式——JWT

    什么是JWT JWT--Json web token 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准,可实现无状态.分布式的Web应用授权. 现在一般都用redis来出来token做 ...