添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

不管是否指定主机端口,使用ports都会将端口暴露给主机。

容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P(大写) 或 -p (小写) 参数来指定端口映射。

(1) 当使用-P标记时,Docker 会随机映射一个49000~49900的端口到内部容器开放的网络端口。

使用docker ps可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。

$ sudo docker run -d -P training/webapp python app.py
$ sudo docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse

同样的,可以通过docker logs命令来查看应用的信息。

$ sudo docker logs -f nostalgic_morse
* Running on http://0.0.0.0:5000/
10.0.2.2 - - [23/May/2014 20:16:31] "GET / HTTP/1.1" 200 -
10.0.2.2 - - [23/May/2014 20:16:31] "GET /favicon.ico HTTP/1.1" 404 -

(2) -p(小写)则可以指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器。支持的格式有 hostPort:containerPort、ip:hostPort:containerPort、ip::containerPort。

  1. expose

expose暴露容器给link到当前容器的容器,用法:

expose:

- "3000"

- "8000"

以上指令将当前容器的端口3000和8000暴露给link到本容器的容器。

和ports的区别是,expose不会将端口暴露给主机。

http://www.douluodalu.xyz/item1.html

一、portsexpose区别 ports 用来把服务端口映射给宿主机,可以访问宿主机 IP 地址的人都可以访问 ports 映射出来的端口;expose 用来把服务端口开放给其他服务,客户端服务可以通过 links 功能访问服务端服务的端口。 二、Dockerfile 的 EXPOSEdocker-composeexpose区别 其实这俩个是同一个意思,如果 Dockerfile 里面通过 EXPOSE 暴露了端口出来,那么在通过 docker-compose 创建的服务也 一、Dockerfile介绍    Docker通过读取Dockerfile里面的内容可以自动build image,Dockerfile是一个包含了build过程中需要执行的所有命令的文本文件。也可以理解为Dockfile是一种被Docker程序解释的脚本,由一条一条的指令组成,每条指令对应Linux系统下面的一条命令,由Docker程序将这些Dockerfile指令翻译成真正的Linux命令。 一、Docker-Compose简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件... docker-compose config -q验证docker-compose.yml文件。-f,–file:指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定,指定多个 yml;# -f 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定,指定多个 yml。-p, --project-name:指定工程名称,默认使用 docker-compose.yml 文件所在目录的名称;指定多个yml加-f选项。 docker-compose基础语法 文章目录docker-compose基础语法简介imagebuildcommandentry pointportsexposelinksloggingstop_signalnetwork_modenetworks ​ Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。 ​ Compose 通过一个配置文件来管理多个Do 本章主要介绍docker-compose的常用命令以及Docker五种网络模式与应用场景。掌握主要的常用命令: up、down、ps、start、stop、restart、rm、pull、push等命令。主要分为 bridge(默认)、host 、container 、none 和⾃定义(Macvlan)这五种模式。可以掌握bridge(默认)、host 即可,其他的不常用 - "3000" # 主机自动分配未被占用的端口 - "3000-3005" # 端口范围 规则和上边相同 - "8000:8000" # 比较常见的 容器端口8000 对应主机端口8000 - "9090-9091:8080-8081" # 端口范围 规则和上边一天相同 - "49100:22" - "127.0.0.1:8001:8001" # 绑定主机ip 默认所有范围0.0.0.0