docker官方文档中的dns,link,expose,publish

link是过时的了,尽量不要用。

dns内部集成,也可以用外部。

expose只是用于记录,并不真的。

publish是否起作用,也要看情况,是否被占用端口。

--------------------------------------

Embedded DNS server

Docker daemon runs an embedded DNS server which provides DNS resolution among containers connected to the same user-defined network, so that these containers can resolve container names to IP addresses. If the embedded DNS server is unable to resolve the request, it will be forwarded to any external DNS servers configured for the container. To facilitate this when the container is created, only the embedded DNS server reachable at 127.0.0.11 will be listed in the container’s resolv.conf file. For more information on embedded DNS server on user-defined networks, see embedded DNS server in user-defined networks

Exposing and publishing ports

In Docker networking, there are two different mechanisms that directly involve network ports: exposing and publishing ports. This applies to the default bridge network and user-defined bridge networks.

  • You expose ports using the EXPOSE keyword in the Dockerfile or the --expose flag to docker run. Exposing ports is a way of documenting which ports are used, but does not actually map or open any ports. Exposing ports is optional.
  • You publish ports using the PUBLISH keyword in the Dockerfile or the --publish flag to docker run. This tells Docker which ports to open on the container’s network interface. When a port is published, it is mapped to an available high-order port (higher than 30000) on the host machine, unless you specify the port to map to on the host machine at runtime. You cannot specify the port to map to on the host machine in the Dockerfile, because there is no way to guarantee that the port will be available on the host machine where you run the image.

    This example publishes port 80 in the container to a random high port (in this case, 32768) on the host machine.

    $ docker run -it -p 80 nginx
    
    $ docker ps
    
    64879472feea        nginx               "nginx -g ‘daemon ..."   43 hours ago        Up About a minute   443/tcp, 0.0.0.0:32768->80/tcp   blissful_mclean
    
    

    The next example specifies that port 80 should be mapped to port 8080 on the host machine. It will fail if port 8080 is not available.

    $ docker run -it -p 80:8080 nginx
    
    $ docker ps
    
    b9788c7adca3        nginx               "nginx -g ‘daemon ..."   43 hours ago        Up 3 seconds        80/tcp, 443/tcp, 0.0.0.0:80->8080/tcp   goofy_brahmagupta
    

Links

Before Docker included user-defined networks, you could use the Docker --link feature to allow a container to resolve another container’s name to an IP address, and also give it access to the linked container’s environment variables. Where possible, you should avoid using the legacy --link flag.

When you create links, they behave differently when you use the default bridge network or when you use user-defined bridge networks. For more information, see Legacy Links for link feature in default bridge network and the linking containers in user-defined networks for links functionality in user-defined networks.

时间: 2024-10-26 23:24:29

docker官方文档中的dns,link,expose,publish的相关文章

swift官方文档中的函数闭包是怎么理解的?

官方文档中的16页: numbers.map({ (number: Int) -> Int in let result = 3 * number return result }) 不知道这个怎么用,更不知道它所说的要写个把奇数改成0的方法. swift官方文档中的函数闭包是怎么理解的?

swift官方文档中的switch中case let x where x.hasSuffix("pepper")是什么意思?

在官方文档中,看到这句.但不明白什么意思. let vegetable = "red pepper" switch vegetable { case "celery": let vegetableComment = "Add some raisins and make ants on a log" case "cocumber", "watercress": let vegetableComment = &

Oracle 官方文档 结构说明(教你如何快速从官方文档中获取需要的知识)

这里以11g官方文档为例: 今天来说说怎么快速的从官方文档中得到自己需要的知识. 在线官方文档地址: http://tahiti.oracle.com/ 几乎囊括了 oracle各种产品的文档(oracle db12c的文档还没更新上来) 离线下载地址: www.oracle.com 这个不多说了 以11g官方网文档为例: Getting started 页面: 这里包括一些最基础的文档链接. Concept,里面包括了Oracle数据库里面的一些基本概念和原理.比如说数据库的逻辑结构.物理结构

【Docker官方文档】理解Docker

本文来自Docker的官方文档,详细介绍了Docker的体系结构.重要概念.内部工作机理等内容,推荐不了解Docker内部原理的同学阅读. 什么是Docker? Docker是一个用于开发.交付和运行应用的开放平台,Docker设计用来更快的交付你的应用程序. Docker可以将你的应用程序和基础设施层隔离,并且还可以将你的基础设施当作程序一样进行管理.Docker可以帮助你更块地打包你代码.测试以及部署,并且也可以减少从编写代码到部署运行代码的周期. Docker将一个轻量级的容器虚拟化平台和

tensorflow官方文档中的sub 和mul中的函数已经在API中改名了

在照着tensorflow 官方文档和极客学院中tensorflow中文文档学习tensorflow时,遇到下面的两个问题: 1)AttributeError: module 'tensorflow' has no attribute 'sub' #进入一个交互式Tensorflow会话 import tensorflow as tf sess = tf.InteractiveSession() x = tf.Variable([1.0,2.0]) a = tf.constant([3.0,3.

docker官方文档笔记

Docker在 CentOS7.X上运行.Docker可能在其他EL7的兼容版本中成功安装,但是官方并未进行测试,因此也不提供任何支持. 系统环境要求 docker必须运行在64-bit的系统上,对于CentOS的版本号并没有特别要求.另外,如果需要在CentOS上安装,内核版本必须高于3.10. 通过uname -r 查看内核版本 uname -r 3.10.0-327.el7.x86_64 脚本安装 可以通过以下两种方法安装Docker Engine.使用 yum包管理器: 或者使用 cur

[Docker 官方文档] 理解 Docker

http://segmentfault.com/a/1190000002609286 什么是 Docker? Docker 是一个用于开发.交付和执行应用的开放平台,Docker 设计用来更快的交付你的应用程序.Docker 能够将你的应用程序和基础设施层隔离.而且还能够将你的基础设施当作程序一样进行管理.Docker 能够帮助你更块地打包你代码.測试以及部署,而且也能够降低从编写代码到部署执行代码的周期. Docker 将一个轻量级的容器虚拟化平台和一组标准工作流程.工具进行集成,来帮助你方便

Django1.7官方文档中的tutorial——翻译

写下你的第一个Django应用,第一部分 让我们通过例子来学习. 通过这篇指南,我们将会带你浏览一遍一个基本投票应用的创建. 它由两部分组成: 1一个让人们查看投票和进行投票的公共站点 2一个让你添加,改变和删除投票的管理站点 我们假设你已经安装了Django.你可以检查Django是否被安装以及是哪个版本的通过运行下列命令: python -c “import django; print(django.get_version())” 如果Django被安装了,你应该会看到你安装的版本,否则,你

【原创+译文】官方文档中声明的如何创建抽屉导航栏(Navigation Drawer)

如需转载请注明出处:http://www.cnblogs.com/ghylzwsb/p/5831759.html 创建一个抽屉导航栏 抽屉式导航栏是显示在屏幕的左边缘,它是应用程序的主导航选项面板.它大部分时间是处于隐藏状态的,但是当用户从屏幕的左边缘挥动手指时它就会显示出来,而在应用程序的顶层,用户触摸操作栏上的应用程序图标也可以将其显示出来. 本课程介绍在可用的API 支持库下如何实现导航抽屉DrawerLayout. 首先我们可以看一下最终的效果图: 1.创建一个抽屉布局文件(Drawer