美文网首页
Docker 端口映射和容器关联

Docker 端口映射和容器关联

作者: wean_a23e | 来源:发表于2019-01-23 18:57 被阅读12次

    Docker 除了通过网络访问外,还提供了两个很方便的功能来满足服务访问的基本需求:一个是允许映射容器内应用的服务端口到本地宿主机;另一个是互联机制实现多个容器间通过容器名来快速访问。

    1. 端口映射实现容器访问

    端口映射有五种方式:映射所有 IP 的任意端口、映射所有 IP 的指定端口、映射指定 IP 的任意端口、映射指定 IP 的指定端口、映射 UDP 端口。

    1.1 映射所有 IP 的任意端口

    在创建或者启动容器时使用 -P (大写) 标记,Docker 会随机映射一个端口到容器内开放的网络端口:

    docker run -d -P training/webapp python app.py

    1.2 映射所有 IP 的指定端口、映射指定 IP 的任意端口、映射指定 IP 的指定端口、映射 UDP 端口

    使用 -p (小写) 标记来指定端口,格式为

    HostPort:ContainerPort[/udp] | IP::ContainerPort[/udp] | IP:HostPort:ContainerPort[/udp]

    例如 docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

    2. 互联机制便捷互访

    容器的互联是指用一个容器名来访问到源容器,而不用指定具体的 IP 地址。

    具体步骤是:

    1. 源容器启动时通过 --name 指定一个名字
    2. 新容器启动时通过 --link name:alias 连接源容器,其中 name 是要链接的容器的名称,alias 是别名。

    例如:

    docker run -d --name=db training/postgress
    docker run -d -P --name=web --link db:db training/webapp python app.py
    

    然后在 web 中就可以通过 db 来访问到 db 容器了

    相关文章

      网友评论

          本文标题:Docker 端口映射和容器关联

          本文链接:https://www.haomeiwen.com/subject/ttysjqtx.html