zoukankan      html  css  js  c++  java
  • docker--container的port映射

    使用nginx为例

    先运行nginx

    [root@localhost ~]# docker run --name web -d nginx
    Unable to find image 'nginx:latest' locally
    latest: Pulling from library/nginx
    0a4690c5d889: Pull complete 
    9719afee3eb7: Pull complete 
    44446b456159: Pull complete 
    Digest: sha256:b4b9b3eee194703fc2fa8afa5b7510c77ae70cfba567af1376a573a967c03dbb
    Status: Downloaded newer image for nginx:latest
    WARNING: IPv4 forwarding is disabled. Networking will not work.
    06537c95ca2e0c1885a93755e9fa92aa1a8c7b98ce169764c3197e0208febf79
    [root@localhost ~]# docker container ls
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    06537c95ca2e        nginx               "nginx -g 'daemon of…"   8 minutes ago       Up 8 minutes        80/tcp              web
    19216c85489e        busybox             "/bin/sh -c 'while t…"   About an hour ago   Up About an hour                        test4
    cec10f0cd32d        busybox             "/bin/sh -c 'while t…"   6 hours ago         Up 6 hours                              test3
    68789fa4dc47        busybox             "/bin/sh -c 'while t…"   19 hours ago        Up 19 hours                             test2
    cba625871070        busybox             "/bin/sh -c 'while t…"   24 hours ago        Up 24 hours                             test1
    [root@localhost ~]#

    查看 IP

    [root@localhost ~]# docker network inspect bridge 
    [
        {
            "Name": "bridge",
            "Id": "4e8172ef8e0169e74285225030d0b5f271494df46c4f7bc3ba38e9ca87a1c6f9",
            "Created": "2019-07-17T06:50:29.144315528-07:00",
            "Scope": "local",
            "Driver": "bridge",
            "EnableIPv6": false,
            "IPAM": {
                "Driver": "default",
                "Options": null,
                "Config": [
                    {
                        "Subnet": "172.17.0.0/16",
                        "Gateway": "172.17.0.1"
                    }
                ]
            },
            "Internal": false,
            "Attachable": false,
            "Ingress": false,
            "ConfigFrom": {
                "Network": ""
            },
            "ConfigOnly": false,
            "Containers": {
                "06537c95ca2e0c1885a93755e9fa92aa1a8c7b98ce169764c3197e0208febf79": {
                    "Name": "web",
                    "EndpointID": "8ee4eb75d3551bd76a19790f0bdc9f8bbd555e5674daa69e9b51e96d38deb9f1",
                    "MacAddress": "02:42:ac:11:00:04",
                    "IPv4Address": "172.17.0.4/16",
                    "IPv6Address": ""
                },

    在宿主机能访问nginx

    [root@localhost ~]# curl http://172.17.0.4
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
             35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    [root@localhost ~]#

     我的宿主机是在VMware虚拟的centos,因为IP是绑定在nginx container网络空间, 想要让nginx能从外面访问,则需要做端口映射,把container上的80端口,映射到宿主机上

      1 [root@localhost ~]# docker run -d --name web -p 8080:80 nginx #-p 8080:80 把本地8080端口映射到container 80端口
      2 c24bf84a9d3bdd46fa33f13032c27bbba22ff4cb24ba9cb2309d2570a41e2853
      3 [root@localhost ~]# docker container ps
      4 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
      5 c24bf84a9d3b        nginx               "nginx -g 'daemon of…"   14 seconds ago      Up 13 seconds       0.0.0.0:8080->80/tcp   web
      6 [root@localhost ~]# docker network inspect bridge #查看container IP
      7 [
      8     {
      9         "Name": "bridge",
     10         "Id": "ac664a242c917c931998806bfc970c0fb3c7c9c5b0cbed7769b5a71978ff9748",
     11         "Created": "2019-07-19T02:40:37.951941039-07:00",
     12         "Scope": "local",
     13         "Driver": "bridge",
     14         "EnableIPv6": false,
     15         "IPAM": {
     16             "Driver": "default",
     17             "Options": null,
     18             "Config": [
     19                 {
     20                     "Subnet": "172.17.0.0/16",
     21                     "Gateway": "172.17.0.1"
     22                 }
     23             ]
     24         },
     25         "Internal": false,
     26         "Attachable": false,
     27         "Ingress": false,
     28         "ConfigFrom": {
     29             "Network": ""
     30         },
     31         "ConfigOnly": false,
     32         "Containers": {
     33             "c24bf84a9d3bdd46fa33f13032c27bbba22ff4cb24ba9cb2309d2570a41e2853": {
     34                 "Name": "web",
     35                 "EndpointID": "0eab9a9edb82d03bec9193175689159a2c8826ecfa70b183e84227251a5713fe",
     36                 "MacAddress": "02:42:ac:11:00:02",
     37                 "IPv4Address": "172.17.0.2/16",
     38                 "IPv6Address": ""
     39             }
     40         },
     41         "Options": {
     42             "com.docker.network.bridge.default_bridge": "true",
     43             "com.docker.network.bridge.enable_icc": "true",
     44             "com.docker.network.bridge.enable_ip_masquerade": "true",
     45             "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
     46             "com.docker.network.bridge.name": "docker0",
     47             "com.docker.network.driver.mtu": "1500"
     48         },
     49         "Labels": {}
     50     }
     51 ]
     52 [root@localhost ~]# curl http://172.17.0.2 #访问container IP可以访问
     53 <!DOCTYPE html>
     54 <html>
     55 <head>
     56 <title>Welcome to nginx!</title>
     57 <style>
     58     body {
     59          35em;
     60         margin: 0 auto;
     61         font-family: Tahoma, Verdana, Arial, sans-serif;
     62     }
     63 </style>
     64 </head>
     65 <body>
     66 <h1>Welcome to nginx!</h1>
     67 <p>If you see this page, the nginx web server is successfully installed and
     68 working. Further configuration is required.</p>
     69 
     70 <p>For online documentation and support please refer to
     71 <a href="http://nginx.org/">nginx.org</a>.<br/>
     72 Commercial support is available at
     73 <a href="http://nginx.com/">nginx.com</a>.</p>
     74 
     75 <p><em>Thank you for using nginx.</em></p>
     76 </body>
     77 </html>
     78 [root@localhost ~]# curl http:/127.0.0.1:8080
     79 curl: (6) Could not resolve host: http; Name or service not known
     80 [root@localhost ~]# curl http://127.0.0.1:8080 #测试宿主机 8080端口
     81 <!DOCTYPE html>
     82 <html>
     83 <head>
     84 <title>Welcome to nginx!</title>
     85 <style>
     86     body {
     87          35em;
     88         margin: 0 auto;
     89         font-family: Tahoma, Verdana, Arial, sans-serif;
     90     }
     91 </style>
     92 </head>
     93 <body>
     94 <h1>Welcome to nginx!</h1>
     95 <p>If you see this page, the nginx web server is successfully installed and
     96 working. Further configuration is required.</p>
     97 
     98 <p>For online documentation and support please refer to
     99 <a href="http://nginx.org/">nginx.org</a>.<br/>
    100 Commercial support is available at
    101 <a href="http://nginx.com/">nginx.com</a>.</p>
    102 
    103 <p><em>Thank you for using nginx.</em></p>
    104 </body>
    105 </html>
    106 [root@localhost ~]#

    如果本机是公网IP,则可以直接互联网访问,我这是虚拟机,如果虚拟机网络模式是NAT,则在本地可以直接用虚拟机IP:8080访问,如果想用本地IP则需要配置NAT端口转换,比如下面:

    配置生效后我可以用本地IP:8081访问 web

     

  • 相关阅读:
    Hdu 5396 Expression (区间Dp)
    Lightoj 1174
    codeforces 570 D. Tree Requests (dfs)
    codeforces 570 E. Pig and Palindromes (DP)
    Hdu 5385 The path
    Hdu 5384 Danganronpa (AC自动机模板)
    Hdu 5372 Segment Game (树状数组)
    Hdu 5379 Mahjong tree (dfs + 组合数)
    Hdu 5371 Hotaru's problem (manacher+枚举)
    Face The Right Way---hdu3276(开关问题)
  • 原文地址:https://www.cnblogs.com/laonicc/p/11215043.html
Copyright © 2011-2022 走看看