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. 解决IIS网站.woff 404 (Not Found)问题

    一.在没有权限操作IIS管理器的情况下,在Web.config中的system.webServer节点进行如下配置: <system.webServer> <staticConten ...

  2. JSP标准标签库(JSTL)--核心标签库 c

    核心标签库是JSTL中最重要的部分,可以完成输出,判断,迭代等操作 功能分类: 1. 基本标签: <c:out>:输出属性内容 <c:set>:设置属性内容 <c:rem ...

  3. 使用Log4net记录日志

    首先说说为什么要进行日志记录.在一个完整的程序系统里面,日志系统是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为,并按照某种规范表达出来.我们可以使用日志系统所记录的信息为系统进行排错, ...

  4. Linux 查询程序安装路径 是否安装

    rpm -ql httpd #[搜索rpm包]--list所有文件安装目录 rpm -q mysql  //查询程序是否安装 关于rpm详细用法 参考 http://www.cnblogs.com/x ...

  5. jQuery笔记(1)

    jQuery 是一个类库 拥有众多js函数的类库 jQuery 大大简化了js的书写代码,看的舒服,用的爽. jQuery 是一个数组,它能够隐性的遍历. 比如 ${"button" ...

  6. Quartus14.1中Qsys创建custom component时编译出错原因

    利用Quartus14.1中Qsys工具新建自定义组件时会产生“part-select direction is opposite from prefix index direction”错误,这是由 ...

  7. zepto学习之路--源代码提取

    最近在看zepto的源代码,把一些有用的函数摘出来,看看zepto是怎么实现的,自己做的时候也可以用.说实话,zepto的实现有一些看起来还是很晦涩的,可能是自己的水平不够,看不透作者的真正的意图. ...

  8. web 开发:CSS3 常用属性——速查手册!

    web 开发:CSS3 常用属性——速查手册! CSS3 简介:http://www.runoob.com/css3/css3-intro.html 1.目录 http://caniuse.com/ ...

  9. js timer

    <html><head lang="en"> <meta charset="UTF-8"> <title>< ...

  10. ExtJS如何取得GridPanel当前选择行数据对象 - nuccch的专栏 - 博客频道 - CSDN.NET

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...