Docker自身的4种网络工作方式,和一些自定义网络模式
安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host
host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。
None:该模式关闭了容器的网络功能。
Bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信
 
 
让外部网络访问容器中web服务
思路:首先使用centos镜像新建一个容器,然后在该容器中安装web服务,并启动再把该容器导成一个新的镜像(centos-httpd),然后再使用新镜像(centos-httpd)创建新的容器,并指定端口映射供外部访问。
 
1:新建容器指定名称httpd,并在容器安装web服务(Nginx)
[root@host1 ~]# docker run -itd --name nginx centos bash
910043992a8e734debe42a04e5d21e6a595a1c7dea2a6550c66128a02cd1dea1
 
进入容器安装web服务
[root@host1 ~]# docker exec -it 910043 bash
[root@910043992a8e /]# yum -y install epel-release
[root@910043992a8e /]# yum -y install nginx
 
2:web服务安装完成后,将已安装web服务的httpd容器导出新的镜像为centos_httpd
[root@host1 ~]# docker commit -m "install nginx" -a "test" 910043992a8e centos_httpd
sha256:b2a4963d29cfd6c2a1d44f23af0a08395f1d210872e37fc49c1d7f7a57d66e79
[root@host1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_httpd latest b2a4963d29cf 9 seconds ago 412MB
centos latest 1e1148e4cc2c 9 months ago 202MB
 
3:使用centos_httpd镜像新建一个容器,并指定8088端口映射为容器中的80端口新建容器启动
语法:docker run -itd --privileged -e "container=docker" -p 【宿主机端口】:【容器端口】 【镜像名】 /usr/sbin/init
说明:-p后面格式是IP:port:IP:port,或者127:0.0.1::port,这里两个冒号,表示随机分配主机一个端口映射;如果nginx启动报错误Failed to get D-Bus connection: Operation not permitted,因为dbus-daemon没有启动导致,解决方法:新建容器时加上--privileged -e "container=docker" ,并且最后面的命令改为/usr/sbin/init。
[root@host1 ~]# docker run -itd --privileged -e "container=docker" -p 8088:80 centos_httpd /usr/sbin/init
3bbdb44c307851f2fdf5d3927dbfc4f2f3a78dc69357687b492d416317b3cecb
[root@host1 ~]# docker exec -it 3bbdb44 bash
[root@3bbdb44c3078 /]# systemctl start nginx
[root@3bbdb44c3078 /]# echo "Hell Word" > /usr/share/nginx/html/1.txt
 
4:退出容器后,用curl命令测试本机8088端口是否可以访问容器的80端口内容
[root@host1 ~]# curl localhost:8088/1.txt
Hell Word

docker-网络模式的更多相关文章

  1. Docker网络模式

    [编者的话] 本文是<Docker网络及服务发现>一书的一个章节,介绍了搭建Docker单主机网络的基础内容.关于Docker网络的更多内容,包括多主机的网络,请参考该书的其他章节. @C ...

  2. Docker网络模式说明

    现在的Docker版本不推荐继续使用Link了,而是推荐用网络模式解决问题,简单讲一下最常用的几个网络模式,其他我用到时候再补充. bridge -net不加参数就是默认的bridge模式,这个默认b ...

  3. Docker 网络模式和跨主机通信

    Docker的四种网络模式 Bridge模式 当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上.虚拟网桥的工作方式和物理交 ...

  4. docker网络模式----入门docker的难点

    众所周知,现在docker是轻量级虚拟化的典型代表!这段时间想要建立一个分布式系统,但是手头上主机没那么多,所以使用docker进行虚拟化,但是在使用的过程中对网络这一部分是一直不太理解,特别找了一篇 ...

  5. docker 网络模式研究了许久,其实我们需要的是docker run -p 80:80命令

    我们只是希望能够从外部访问到docker而已,并不需要去折腾该死的网络模式,桥接,host等等. -p: 端口映射,格式为:主机(宿主)端口:容器端口 sudo docker run -t -i  - ...

  6. docker 网络模式 和 端口映射

    docker 的 网络模式 docker 自带 3 种 网络模式:分别是bridge网络,host网络,none网络,可以使用  docker network ls  命令查看. 1.none网络 这 ...

  7. Docker网络模式介绍

    一.概述 docker的网络驱动有很多种方式,按照docker官网给出的网络解决方案就有6种,分别是:bridge.host.overlay.macvlan.none.Network plugins, ...

  8. docker 网络模式详解

    一.前言 Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理.然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分.因此,我们有必要 ...

  9. Docker 网络模式详解及容器间网络通信

    当项目大规模使用 Docker 时,容器通信的问题也就产生了.要解决容器通信问题,必须先了解很多关于网络的知识.Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜 ...

  10. Docker系列02—Docker 网络模式

    一.Docker的四种网络模式 1.Docker 的四种网络模式: Bridge container 桥接式网络模式 Host(open) container 开放式网络模式 Container(jo ...

随机推荐

  1. python的文件操作及简单的用例

    一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...

  2. 力扣(LeetCode)找不同 个人题解

    给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. 示例: 输入: s = "abcd&quo ...

  3. C语言|博客作业03

    这个作业属于哪个课程 C程序语言设计 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/8654 我在这个课程的目标是 ...

  4. TCP/IP网络基础知识

    TCP/IP是一组用于实现网络互联的通信协议,通常称为TCP/IP协议族.包括TCP.IP.UDP.ICMP.RIP.TELNETFTP.SMTP.ARP.TFTP等. 一.TCP/IP模型将协议分为 ...

  5. 用 GitBook 创建一本书

    用 GitBook 创建一本书 Gitbook 首先是一个软件,它使用 Git 和 Markdown 来编排书本,如果你没有听过 Git 和 Markdown,那么 gitbook 可能不适合你直接入 ...

  6. 构思一个在windows下仿objc基于动画层ui编程的ui引擎

    用c/c++编程有些年了,十个指头可以数齐,在涉入iOS objc开发后,有种无比舒服的感觉,尤其在UI开发上. 在QuartzCore.framework下动画和透明窗口等许多效果的事都变得那么方便 ...

  7. 【原创】(十一)Linux内存管理slub分配器

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  8. kali下安装mobsf

    1.查看kali版本,安装mobsf对kali版本的要求是大于3.0并且是64位 uname -a 2.安装docker,有选择的地方直接回车就好 apt-get install docker doc ...

  9. 【Luogu P1981】表达式求值

    点我进入原题Luogu P1981 [解题思路] 仔细分析题目,这就是一道模拟题…… 直接按照符号读入全部的数字,先算乘法,最后把全部数加起来就是结果了 记得要%10000取最后四位 [参考程序] # ...

  10. 数据表与简单java类——多对多映射

    给定一张Meber和Product表,得到如下信息: 1.获取一个用户访问的所有商品信息 2.获取一个商品被哪些用户浏览过的信息 package Mapping_transformation; cla ...