docker简单介绍---网络端口管理
一、查看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简单介绍---网络端口管理的更多相关文章
- Docker简单介绍
Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...
- docker简单介绍---部署私有docker仓库Registry
1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有 ...
- docker简单介绍----镜像和容器管理
docker可以分为三部分:docker镜像 docker仓库 docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...
- Docker系列(一):Docker简单介绍
Docker简介: 多语言和框架:支持多语言和框架以及语言框架的扩展机制 多服务:开放的核心服务以及服务的扩展机制 多云和多IaaS技术:支持多种IaaS技术和多云的部署,包括公有云和私有云 Dock ...
- docker简单介绍----Dockerfile命令
DockerFile的组成部署: 下面优先介绍下Dcokerfile的基础指令 一.CMD指令:容器启动时要莫热门运行的命令,如果有多个CMD指定,最后一个生效 使用方法: CMD ["ex ...
- docker 简单介绍及基础命令运用
一.什么是docker? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. 简单的来讲Docker实际上就是一个大型容器.容器是完全使用沙箱机制,相互之间不 ...
- docker 简单介绍与安装
主机虚拟化(vmware,visual box等) type-Ⅰ type=Ⅱ 主机虚拟化是隔离最彻底的,但是由于多隔了一个虚拟的操作系统,性能会慢一些. 容器虚拟化(docker等) 隔离没有主机虚 ...
- docker简单介绍----存储
docker容器 中使用Volumes来实现数据的持久性,因为容器的删除会丢失数据,而关闭或者重启容器不会丢失数据 docker run -v即可使用Volumes 1.docker-managed ...
- docker简单介绍。
docker是啥? 一.概念? // 和运维有关的工具,和开发没有很大的关系.只需要去调试项目,将项目运行更迅速. 二.作用? 1.只需要关心项目的编写和调试,不需要关心具体的项目需要运行在哪里,并且 ...
随机推荐
- Surging1.0发布在即,.NET开发者们,你们还在等什么?
Surging1.0发布在即,.NET开发者们,你们还在等什么? 开源,是近三十年来互联网经久不衰的话题.它不仅仅是一种技术分享的形态,更是一种开放,包容,互利共赢的互联网精神. 不到30年前,大神林 ...
- Python + Tornado 搭建自动回复微信公众号
1 通过 pip 安装 wechat-python-sdk , Requests 以及 Tornado pip install tornado pip install wechat-sdk pip i ...
- linux下开启、关闭、重启mysql服务命令
一. 启动1.使用 service 启动:service mysql start2.使用 mysqld 脚本启动:/etc/inint.d/mysql start3.使用 safe_mysqld 启动 ...
- SyntaxError: missing ) after argument list
消息 语法错误: 参数列表后面缺少 ) 错误类型 SyntaxError. 什么地方出错了? 有一个函数在调用时出现错误.这可能是一个错误,丢失运算符或者转义字符等. 示例 因为没有使用 ”+“ 操作 ...
- php函数 array_change_key_cash
array_change_key_case ( array $array [, int $case = CASE_LOWER ] ) : array array_change_key_case() 将 ...
- 神经网路-SGD-1
SGD神经网络以及python中实现 1.SGD(stochastic gradient descend):<1>数据抽取:<2>计算梯度;<3>参数更新:< ...
- Linux 学习 (十一) 软件安装管理
Linux软件安装管理 学习笔记 软件包简介 软件包分类: 源码包 :脚本安装包 二进制包(RPM 包.系统默认包) 源码包的优点: 开源,如果有足够的能力,可以修改源代码 可以自由选择所需的功能 软 ...
- Django admin组件使用
ADMIN 组件 介绍 admin 组件实现了更方便的WEB后台数据管理方式 settings.py 中第一个组件就是 : INSTALLED_APPS = [ 'django.contrib.adm ...
- 自定义一个IOC框架
要实现的功能: 将对象的实例化交给自定的ioc容器. 通过注解的方式对接口进行依赖注入 通过getBean("userName")方法那到对象,使用对象的方法 首先,创建一个对象, ...
- redis jedis使用
jedis就是集成了redis的一些命令操作,封装了redis的java客户端.提供了连接池管理.一般不直接使用jedis,而是在其上再封装一层,作为业务的使用.如果用spring的话,可以看看spr ...