• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >Linux > docker-compose ports和expose的区别详解

docker-compose ports和expose的区别详解

作者:Stinky_kiss 字体:[增加 减小] 来源:互联网

本文主要包含docker,compose,ports,docker,expose,docker,compose,ports和expose等服务器相关知识,Stinky_kiss 希望可以进行参考

docker-compose中有两种方式可以暴露容器的端口:ports和expose。

ports

ports暴露容器端口到主机的任意端口或指定端口,用法:

ports:
 
- "80:80" # 绑定容器的80端口到主机的80端口
 
- "9000:8080" # 绑定容器的8080端口到主机的9000端口
 
- "443" # 绑定容器的443端口到主机的任意端口,容器启动时随机分配绑定的主机端口号

不管是否指定主机端口,使用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。

expose

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

expose:
- "3000"
- "8000"

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

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

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 在Ubuntu18.04上安装Docker CE的方法(社区版)
  • docker安装tomcat dubbo-admin实例技巧
  • Centos7搭建Docker私有库
  • CentOS7上安装WordPress
  • centos7下快速安装mysql
  • centos6.5下部署elk
  • Docker桥接网络原理图分享和pipework简单配置
  • 使用Docker部署SpringBoot项目的实现方法
  • docker-compose ports和expose的区别详解
  • CentOS8上用Docker部署开源项目Tcloud的教程

相关文章

  • Centos 6.5下安装MySQL 5.6
  • Centos 6.5 DNS配置
  • CentOS7 安装Mysql5.7(解压缩版)
  • Centos中完全删除mysql的方法
  • centos配置samba服务器
  • 使用vs2019进行Linux远程开发的方法步骤
  • 详解Linux下crontab的使用与注意事项
  • centos7下快速安装mysql
  • CentOS 6.4下编译安装MySQL 5.6.14
  • centos5下安装mysql5.7.17

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • centos7.2安装mysql5.7.17
    • centos7安装配置vsftp
    • Centos下MySQL忘记密码修改方法
    • CentOS 6.4下编译安装MySQL 5.6.14
    • Ubuntu 14.04.4 LTS下LAMP环境的搭建
    • Linux centos7 下安装 phpMyAdmin的教程
    • centos7 rpm方式安装mysql5.7 详细相关教程
    • Ubuntu 16.04 源码编译安装PHP7
    • Centos6.5下彻底删除MYSQL
    • Ubuntu 14.04 配置vsftpd实现FTP服务器 - 通过FTP连接AWS

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有