Docker内部访问的三种方式

Dockerfile是这样的

FROM ubuntu:14.04
MAINTAINER chiyiw wp941019@126.com
RUN apt-get update
RUN apt-get install -y nginx
COPY ./www /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

运行Docker容器

docker run -p 8000:80 chiyiw/ubuntu-nginx:v2

这里将容器的80到端口映射到主机到8000端口

此时查看ifconfig

docker0   Link encap:以太网  硬件地址 56:84:7a:fe:97:99  
          inet 地址:172.17.42.1  广播:0.0.0.0  掩码:255.255.0.0
          inet6 地址: fe80::5484:7aff:fefe:9799/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:120 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:115 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:10074 (10.0 KB)  发送字节:13695 (13.6 KB)

eth0      Link encap:以太网  硬件地址 00:0c:29:da:f3:8e  
          inet 地址:192.168.126.133  广播:192.168.126.255  掩码:255.255.255.0
          inet6 地址: fe80::20c:29ff:feda:f38e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:34713 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:16961 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:35391719 (35.3 MB)  发送字节:2047770 (2.0 MB)

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:3845 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:3845 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:9644466 (9.6 MB)  发送字节:9644466 (9.6 MB)

veth29a2  Link encap:以太网  硬件地址 ae:fa:c2:da:78:e7  
          inet6 地址: fe80::acfa:c2ff:feda:78e7/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  跃点数:1
          接收数据包:12 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:15 错误:0 丢弃:1 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:872 (872.0 B)  发送字节:1108 (1.1 KB)

包含了三个级别的地址:

那么我们现在可以怎么访问我们容器里面的nginx下的html?

测试