docker网络访问

ifconfig查看网卡,启动docker的时候,docker会帮我们创建一个docker0的网桥。

1、随机映射

  • docker run -P

2、指定映射

  • -p hostPort:containerPort
  • -p ip:hostPort:containerPort
  • -p ip::containerPort
  • -p hostPort:containerPort:udp
  • -p hostPort:containerPort -p hostPort:containerPort (多个端口映射)

随机映射案例

使用docker启动nginx

[root@linux-node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 01f818af747d 2 weeks ago 181.6 MB
centos latest 67591570dd29 4 weeks ago 191.8 MB
[root@linux-node1 ~]# docker run -d -P nginx
9725a9fb539a3334436c74a808f9ba134a8f530ed14065435f49846a7ecd4330
[root@linux-node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9725a9fb539a nginx "nginx -g 'daemon off" 9 seconds ago Up 5 seconds 0.0.0.0:10001->80/tcp, 0.0.0.0:10000->443/tcp dreamy_gates

从上面docker ps命令可以看到,nginx容器启动,物理机的10001被映射到容器的80端口,物理机的10000被映射到容器的443端口。

访问物理机IP和port,http://192.168.137.11:10001/

进入nginx容器,查看网络分配地址为172.17.0.2

[root@linux-node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9725a9fb539a nginx "nginx -g 'daemon off" 9 minutes ago Up 9 minutes 0.0.0.0:10001->80/tcp, 0.0.0.0:10000->443/tcp dreamy_gates
[root@linux-node1 ~]# ./docker_in.sh 9725a9fb539a
root@9725a9fb539a:/# ip ad li
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
20: eth0@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:2/64 scope link
valid_lft forever preferred_lft forever

iptables查看Nat表,命令:iptables -t nat -vnL

从上图可以看到容器和物理机的映射关系。

查看nginx容器日志

[root@linux-node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9725a9fb539a nginx "nginx -g 'daemon off" 13 minutes ago Up 12 minutes 0.0.0.0:10001->80/tcp, 0.0.0.0:10000->443/tcp dreamy_gates
[root@linux-node1 ~]# docker logs 9725a9fb539a

指定映射案例

1、使用docker启动一个nginx,指定88端口

[root@linux-node1 ~]# docker run -d -p 192.168.137.11:88:80 --name mynginx nginx
f807dc543291857aecd7ff9ebc7318039c6873e5c727cf71dbdd07d8ebac624a
[root@linux-node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f807dc543291 nginx "nginx -g 'daemon off" 4 seconds ago Up 2 seconds 443/tcp, 192.168.137.11:88->80/tcp mynginx

提示: -d代表后台运行 -p指定端口 --name指定名称

访问页面 http://192.168.137.11:88/

查看nginx端口映射

[root@linux-node1 ~]# docker port mynginx
80/tcp -> 192.168.137.11:88

2、docker 启动映射多端口

[root@linux-node1 ~]# docker run -d -p 443:443 -p 89:80 --name mynginx2 nginx
e9e4eed824ddb26fa1abe742123e3c46515be775dbc5c23556cefbaa94e92838
[root@linux-node1 ~]# docker port mynginx2
443/tcp -> 0.0.0.0:443
80/tcp -> 0.0.0.0:89

docker网络访问(三)的更多相关文章

  1. docker网络访问

    一 docker网络访问 描述: 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的.当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或者-p ...

  2. 4、Docker网络访问

    现在我们已经可以熟练的使用docker命令操作镜像和容器,并学会了如何进入到容器中去,那么实际的工作中,我们通常是在Docker中部署服务,我们需要在外部通过IP和端口进行访问的,那么如何访问到Doc ...

  3. docker的网络访问

    Docker的网络访问: #systemctl  start docker #ifconfig [root@zizhen02 ~]# ifconfig docker0: flags=4099<U ...

  4. Docker网络和存储

    本节内容: Docker网络访问 端口映射 数据管理 一.Docker网络访问 1. docker自带的网络 docker network ls:列出当前docker中已有的网络 docker net ...

  5. docker从零开始网络(三) overly(覆盖)网络

    使用overly网络 该overlay网络驱动程序会创建多个docker进程主机之间的分布式网络.该网络位于(覆盖)特定于主机的网络之上,允许连接到它的容器(包括群集服务容器)安全地进行通信.Dock ...

  6. K8S系列第三篇(Docker网络)

    目录 docker 网络 Docker 的四种网络模 一.网络基础 1.网络名称空间介绍 2.创建一个命名空间 1)Veth设备对 2)Veth设备操作 1> 创建Veth设备对 2> 绑 ...

  7. docker网络-如何让外部网络访问容器资源

    docker网络-如何让外部网络访问容器资源 安装httpd 服务: docker:/root# docker exec -it f63b2633d146 bash bash-4.1# yum ins ...

  8. Docker 外部访问容器Pp、数据管理volume、网络network 介绍

    Docker 外部访问容器Pp.数据管理volume.网络network 介绍 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来 指定端口映射. ...

  9. 理解Docker(5):Docker 网络

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

随机推荐

  1. 判断浏览器增加标签 encodeURIComponent

    var Sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; var lx; (s = ua.match(/msie ([\d.]+ ...

  2. android zip解压缩

    android  zip解压缩 public class ZipUtils { public ZipUtils() { } /* 以输入流的形式解压 */ public static void UnZ ...

  3. EXCEL读写NPOI

    1.第一步: 可以使用ExcelAutomation进行EXCEl文件的读写,但是需要电脑上安装EXCEL,对EXCEL版本有要求,速度慢,有安全性,并发性问题,不适合网站类项目. 第二种方法: NP ...

  4. initWithNibName与viewDidLoad的执行关系以及顺序

    转载自:http://www.java123.net/v/380331.html 一个ViewController,一般通过init或initWithNibName来加载.二者没有什么不同,init最 ...

  5. Python3基础 list(reversed()) 将一个列表逆转并输出

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  6. Sping中的IOC四种注解的简单记录

    @Component 通用注解,不推荐使用,要用的话,任何类的头上都能使用,但是这个类到底是干嘛用得就不知道了. @Controller 控制层使用,也就是MVC中的C,主要的时候使用的时候注意配合@ ...

  7. hdu1915

    对于图的东西总是一筹莫展,没办法,还是翻出以前的基础题来看看,然后慢慢分析吧.路漫漫其修远兮,吾将上下而求索…… void bfs(int x,int y){ for(int k=0;k<8;k ...

  8. html ajax 双引号的问题

    "<a onClick='openwin_searchmodel()' href='searchmodel.action?projectname="+person[i].ge ...

  9. Android源码之Gallery专题研究(2)

    引言 上一篇文章已经讲解了数据加载过程,接下来我们来看一看数据加载后的处理过程.按照正常的思维逻辑,当数据加载之后,接下来就应该考虑数据的显示逻辑. MVC显示逻辑 大家可能对J2EE的MVC架构比较 ...

  10. JQuery收集