docker网络访问(三)

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

1
2
3
4
5
6
7
8
9
[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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[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容器日志

1
2
3
4
[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端口

1
2
3
4
5
[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端口映射

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

 

2、docker 启动映射多端口

1
2
3
4
5
[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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值