docker-compose - 如何阅读/理解 docker-compose.yml 以及“stdin_open:true tty:true”组件的作用?
问题描述
参加处理这些问题的课程;实际细节与课程无关,但我通常有兴趣尝试理解事物。
我有一个 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 是 image_name:tag 组合
- 暴露和端口:列出端口(不确定这两者之间的区别或区别的意义是什么)
- 我不知道 stdin_open 或 tty 做什么,似乎无法通过谷歌得到理解。
解决方案
tty
和stdin_open
分别类似于命令的-t
和-i
参数docker run
。
stdin_open
当您需要在 Docker 容器之外的项目上工作时使用。
tty
当您需要在 Docker 容器内处理项目时使用。
要对此进行测试,请尝试使用docker-compose up
其中一个tty
或stdin_open
两个都运行,您会发现使用stdin_open
时不会登录到容器的终端,而使用tty
.
至于你关于和之间的区别的问题expose
,ports
答案可以在这里找到。
推荐阅读
- c# - 使用 IAsyncEnumerable “使用”块
- javascript - 沿圆弧移动一个点到另一个点的距离
- regex - 如何拒绝访问 htaccess 中的 url
- javascript - 如何在可按下元素中使用 ifelse 逻辑
- python-3.x - 气流图/树视图自动刷新?
- javascript - 如何在 MongoDB 中生成唯一的 8 位组织 ID?
- python - 用 Numpy 数组中的其他值替换文本
- javascript - 访问嵌套 JSON 对象的信息以进行 React 组件渲染
- c++ - WriteConsoleOutputCharacter 不打印符号
- r - Linux 上的 Reprex 错误:未提供输入且剪贴板不可用