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