docker容器访问权限(docker 容器自定义 hosts 网络访问操作)
docker容器访问权限
docker 容器自定义 hosts 网络访问操作在 docker-compose.yml 中增加 extra_hosts 关键字就可以将数据写入到容器的 /etc/hosts。
extra_hosts
添加主机名映射。
extra_hosts:
“somehost:162.242.195.82”
“otherhost:50.31.209.229”
将会在/etc/hosts创建记录:
162.242.195.82 somehost
50.31.209.229 otherhost
注意:
如果指向的是本机,不要写容器的ip,(因为IP重启后会变,除非你给容器设置固定ip)而是写宿主机的ip,如192.168.xxx.xxx
补充:Docker 网络:host模式
当我们准备将Docker技术应用到生产级别的场景时,我们需要了解很多网络方面的知识。网络是Docker中相对比较薄弱的部分,我们有必要了解Docker的网络知识,以满足更高的网络需求。
本节先对Docker网络模型中的host模型进行理论介绍,再通过案例的实操,让您更好地去理解docker网络模型。
Docker网络当你安装完Docker时,它会自动创建三个网络。你可以使用以下docker network ls命令列出这些网络:
docker network ls
结果应如下
NETWORK ID NAME DRIVER SCOPE 594430d2d4bb bridge bridge local d855b34c5d51 host host local b1ecee29ed5e none null local
Docker内置这三个网络,运行容器时,你可以使用该来指定容器应连接到哪些网络。
我们在使用docker run创建Docker容器时,可以用--network标志 选项指定容器的网络模式,Docker有以下4种网络模式:
host模式:使用 --net=host 指定。
none模式:使用 --net=none 指定。
bridge模式:使用 --net=bridge 指定,默认设置。
container模式:使用 --net=container:NAME_or_ID 指定。
host模式Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的Network Namespace隔离。
host模式类似于Vmware的桥接模式,与宿主机在同一个网络中,但没有独立IP地址。一个Docker容器一般会分配一个独立的Network Namespace。
但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
如下图所示:容器与主机在相同的网络命名空间下面,使用相同的网络协议栈,容器可以直接使用主机的所有网络接口
案例验证
查看主机链路接口
ip a
我们右侧云环境主机的IP为{host0.ip}/24上用host模式启动nginx容器,监听它的tcp80端口。
使用--net host参数来指定网络模型使用host模式
docker run --name=nginx --net=host -p 80:80 -d nginx
查看容器链路接口,与主机一致
docker exec -it nginx cat /etc/hosts
这时外界要访问容器中的应用,则直接使用{host0.ip}:80即可,不用任何NAT转换,就像直接跑在宿主机中一样。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。
curl {host0.ip}
host 模式简单并且性能高,host 模式下面的网络模型是最简单和最低延迟的模式,容器进程直接与主机网络接口通信,与物理机性能一致,host 不利于网络自定配置和管理,并且所有主机的容器使用相同的IP。
也不利于主机资源的利用。对网络性能要求比较高,可以使用该模式。否则应该使用其他模式
以上为个人经验,希望能给大家一个参考,也希望大家多多支持开心学习网。如有错误或未考虑完全的地方,望不吝赐教。
- docker root权限(docker 免root权限登陆的解决方案)
- dockerfile启动容器服务(docker文件存放路径, 获取容器启动命令操作)
- 腾讯云docker安装elasticsearch(docker 启动elasticsearch镜像,挂载目录后报错的解决)
- docker 构建整个环境(Docker如何快速搭建LNMP环境最新)
- docker可用容量查看(docker 查看jvm内存占用方式)
- springboot与docker(详解SpringBoot项目docker环境运行时无限重启问题)
- 将docker中的镜像打包教程(本地使用docker打包部署镜像的方法)
- docker端口映射详解(docker 启用多个端口映射命令的操作)
- docker指定基础镜像命令(Docker重命名镜像名称和TAG操作)
- docker怎么用端口连接容器(使用docker更改容器内root密码的操作)
- docker-compose 开发代码(Docker Compose多容器部署的实现)
- docker无法启动内存不足(解决docker磁盘空间不足问题)
- docker是k8s 编排必备容器工具(Docker部署ELK7.3.0日志收集服务最佳实践)
- 数据库docker技术(总结Docker不适合部署数据库的7大原因)
- dockernextcloud优化(docker+nextcloud搭建个人云存储系统的实现)
- dockernginx服务器教程(Docker镜像+nginx 部署 vue 项目的方法)
- 三人行,她们是育人路上的 铁三角 团队(她们是育人路上的)
- 阴阳师 孟婆山兔CP不倒 新皮肤草稿 孟婆兔 让痒痒鼠点赞(阴阳师孟婆山兔CP不倒)
- 阴阳师孟婆御魂推荐 孟婆御魂搭配毕业套(阴阳师孟婆御魂推荐)
- 袁冰妍终于接到新剧,饰演反追男主,看到合作演员 眼光果然毒辣(袁冰妍终于接到新剧)
- 记忆中的台词(记忆中的台词)
- 袁冰妍轧戏 拍《琉璃》的同时还在拍《将夜》,难怪被骂演技差(拍琉璃的同时还在拍将夜)
热门推荐
- tmp文档可以删除吗(tmpwatch命令清除旧文件的方法)
- IQueryable与IEnumberable的区别
- 怎么运行xampp中的mysql(本地安装了mysql导致xampp的mysql服务启动失败)
- python代码添加微信号(python 获取微信好友列表的方法微信web)
- vuejs组件使用教程交流(Vue vee-validate插件的简单使用)
- 云服务器可以搭建几个网站(使用云服务器搭建网站的注意事项)
- python创建一个xls文件(Python XlsxWriter模块Chart类用法实例分析)
- php去水印方法(PHP开发的文字水印,缩略图,图片水印实现类与用法示例)
- python停止执行的代码(python定时检测无响应进程并重启的实例代码)
- mysql binlog日志位置(开启MySQL的binlog日志的方法步骤)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9