docker – 组成分离模式
我有以下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
这是复杂的,所以我正在尝试创build像这样的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"
但是我不确定从原来的docker run命令中传递-d
, -i
&-tflash的位置
我正在运行docker,像这样
docker-compose -f docker-compose.yml run hdinsight
任何人都可以指出我的方向吗?
第一次回答后更新
我试图运行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#
不知道为什么它在Exited
状态
任何想法 ?
谢谢
您应该刷新撰写文件文档 。
大多数docker运行命令都具有相同的构成,应该全部列在那里。
后台标志-d在运行或启动后运行 。
tty标志-t和交互标志-i不是必需的,因为docker-compose run 默认是这样做的 。 您可以使用-t将tty添加到撰写文件中的单个容器,但不能使用交互模式,因为您可能一次启动多个容器,并且无法与所有容器进行交互。
关于你的情况,你正在使用的命令应该工作。 如果在运行命令之后添加-d,它将在后台运行。 但我build议使用up而不是run ,因为它只是启动文件中的所有容器,而不必指定hdinsight。
今天我面临同样的问题,下面是我如何pipe理。
我在下面的“docker-compose.yml”文件中添加了tty:true kay值和 stdin_open:true键值,我确信它将以分离模式运行,并且还可以与控制台交互。
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