docker-compose命令对比

本文详细对比了Docker Compose配置项如image与build的区别,links与external_links的功能差异,ports与expose的不同之处,以及volumes与volumes_from的用法。通过这些内容,读者可以更好地理解如何高效地使用Docker Compose进行容器编排。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对比

image vs build

  • image:如果镜像在本地不存在,Compose 将会尝试拉去这个镜像。

  • build:指定 Dockerfile 所在文件夹的路径。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像。

links vs external_links

  • links:链接到其它服务中的容器。使用服务名称(同时作为别名)或服务名称:服务别名 (SERVICE:ALIAS) 格式都可以。使用的别名将会自动在服务容器中的 /etc/hosts 里创建。

  • external_links:链接到 docker-compose.yml 外部的容器,甚至 并非 Compose 管理的容器。

ports vs expose

  • ports
    暴露端口信息。使用:宿主:容器 (HOST:CONTAINER)格式或者仅仅指定容器的端口(宿主将会随机选择端口)都可以。

当使用 HOST:CONTAINER 格式来映射端口时,如果你使用的容器端口小于 60 你可能会得到错误得结果,因为 YAML 将会解析 xx:yy 这种数字格式为 60 进制。所以建议采用字符串格式。

  • expose
    暴露端口,但不映射到宿主机,只被连接的服务访问。

仅可以指定内部端口为参数

volumes vs volumes_from

  • volumes
    卷挂载路径设置。可以设置宿主机路径 (HOST:CONTAINER) 或加上访问模式 (HOST:CONTAINER:ro)。

ro就是readonly的意思,只读模式。

  • volumes_from
    从另一个服务或容器挂载它的所有卷。

参考

Compose环境变量说明环境变量已经不再是用来连接服务的推荐方法了,相反,应该使用链接名称(默认情况下是链接服务的名称)作为主机名称来连接,这可以查看docker-compose.yml的更多细。Compose使用Docker links来暴露服务的容器给其他的。每一个链接的容器都使用了一组环境变量,这每一组环境变量都是以容器名称的大写字母开头的。要查看服务可用的环境变量,运行docker-compose run SERVICE env

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值