roy*_*roy 28 docker docker-compose
我有以下docker命令来运行容器
docker run -d --name test -v /etc/hadoop/conf:/etc/hadoop/conf -v /usr/lib/python2.7/dist-packages/hdinsight_common:/usr/lib/python2.7/dist-packages/hdinsight_common -v /etc/hive/conf/:/etc/hive/conf/ -v /etc/tez/conf/:/etc/tez/conf/ -v /usr/hdp/2.4.2.0-258/sqoop/lib/:/usr/hdp/2.4.2.0-258/sqoop/lib/ -i -t hdinsight /bin/bash
Run Code Online (Sandbox Code Playgroud)
这很复杂,所以我试图创建像这样的docker-compose文件
version: '2'
services:
hdinsight:
image: hdinsight
container_name: ABC
volumes:
- /etc/hadoop/conf:/etc/hadoop/conf
- /usr/lib/python2.7/dist-packages/hdinsight_common:/usr/lib/python2.7/dist-packages/hdinsight_common
- /etc/hive/conf/:/etc/hive/conf/
- /etc/tez/conf/:/etc/tez/conf/
- /usr/hdp/2.4.2.0-258/sqoop/lib/:/usr/hdp/2.4.2.0-258/sqoop/lib/
entrypoint:
- bash
labels:
- "HDInsight client VM"
Run Code Online (Sandbox Code Playgroud)
但我不知道该到哪里-d,-i和-t从我原来的码头工人,运行命令flages
我正在运行像这样的码头组合
docker-compose -f docker-compose.yml run hdinsight
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我正确的方向吗?
第一次回答后更新
我试着跑 docker-compose up -d
root@abc-docker:~/ubuntu# docker-compose up -d
Creating ABC
root@sbd-docker:~/ubuntu# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ffa4c359abf7 hdinsight "/bin/bash" 5 seconds ago Exited (0) 5 seconds ago ABC
root@sbd-docker:~/ubuntu#
Run Code Online (Sandbox Code Playgroud)
不知道为什么它的Exited地位
任何的想法 ?
谢谢
Nau*_*aun 18
您应该搜索Compose文件文档.
大多数docker run命令都有一个compose等价物,它们都应该列在那里.
后的背景标志-d去跑步或向上.
tty标志-t和交互标志-i不是必需的,因为docker-compose run 默认执行此操作.您可以使用-t在compose文件中将tty添加到单个容器中,但是您不能使用交互模式,因为您可以一次启动多个容器,并且无法与它们进行全部交互.
关于你的情况,你正在使用的命令应该正常工作.如果在运行命令后添加-d,它将在后台运行.但我建议使用up而不是run,因为它只是启动文件中的所有容器,而不是必须指定hdinsight.
Ort*_*kni 15
正如 Anand Suthar 所说,你必须使用tty: true和stdin_open: true。这是一个最小的例子:
version: "3"
services:
alpine1:
image: alpine
tty: true
stdin_open: true
Run Code Online (Sandbox Code Playgroud)
从...开始:
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
附加到容器:
docker attach 268bcfb650fb
Run Code Online (Sandbox Code Playgroud)
并与 分离^P^Q。
从文件
Usage: up [options] [--scale SERVICE=NUM...] [SERVICE...]
Options:
-d, --detach Detached mode: Run containers in the background,
print new container names. Incompatible with
--abort-on-container-exit.
Run Code Online (Sandbox Code Playgroud)
命令应该是
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
今天,我面临着同样的问题,下面是我的管理方式。
我在下面的“ docker-compose.yml”文件中添加了tty:真正的 kay值和 stdin_open:真正的键值,我确信它会以分离模式运行,并且还可以与控制台交互。
version: '2'
services:
hdinsight:
image: hdinsight
container_name: ABC
volumes:
- /etc/hadoop/conf:/etc/hadoop/conf
- /usr/lib/python2.7/dist-packages/hdinsight_common:/usr/lib/python2.7/dist-packages/hdinsight_common
- /etc/hive/conf/:/etc/hive/conf/
- /etc/tez/conf/:/etc/tez/conf/
- /usr/hdp/2.4.2.0-258/sqoop/lib/:/usr/hdp/2.4.2.0-258/sqoop/lib/
entrypoint:
- bash
labels:
- "HDInsight client VM"
tty: true
stdin_open: true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37258 次 |
| 最近记录: |