如何阅读/理解docker-compose.yml以及;标准开放:真实tty:真实;组件是什么?

如何阅读/理解docker-compose.yml以及;标准开放:真实tty:真实;组件是什么?,docker-compose,yaml,Docker Compose,Yaml,学习处理这些问题的课程;实际的细节与课程无关,但我通常有兴趣尝试去理解一些事情 我有一个docker-compose.yml文件,我可以“调用”或“启动”。该文件包含以下信息: services: redis: image: redis:latest expose: - "6379" sample0395: image: sample0395/base:latest stdin_open: true tty: true exp

学习处理这些问题的课程;实际的细节与课程无关,但我通常有兴趣尝试去理解一些事情

我有一个docker-compose.yml文件,我可以“调用”或“启动”。该文件包含以下信息:

services:
  redis:
    image: redis:latest
    expose:
      - "6379"

  sample0395:
    image: sample0395/base:latest
    stdin_open: true
    tty: true
    expose:
      - "8888"
    ports:
      - "8888:8888"
据我所知,仅基于如下所示的层次结构:

  • redis和sample0395是“服务”
  • redis:latest和sample0395/base:latest是图像名称:标记组合
  • expose和ports:列出端口(不确定两者之间的区别或区别的意义)
  • 我不知道stdin_open或tty做什么,似乎也无法通过谷歌获得理解

tty
stdinu open
分别类似于
docker run
命令的
-t
-i
参数

当您需要处理Docker容器外部的项目时,可以使用
stdin\u open

当需要处理Docker容器内的项目时,可以使用
tty

要测试这一点,请尝试使用
tty
stdin\u open
运行
docker compose up
,但不能同时使用这两种方法,您会发现使用
stdin\u open
您不会登录到集装箱码头,而使用
tty
则相反


至于您关于
expose
ports
之间差异的问题,可以找到答案。

tty
stdinu open
分别类似于
-t
-i
docker run命令的参数

当您需要处理Docker容器外部的项目时,可以使用
stdin\u open

当需要处理Docker容器内的项目时,可以使用
tty

要测试这一点,请尝试使用
tty
stdin\u open
运行
docker compose up
,但不能同时使用这两种方法,您会发现使用
stdin\u open
您不会登录到集装箱码头,而使用
tty
则相反

关于
暴露
端口
之间的区别,可以找到答案