2016-06-28 12 views
10

mam następujące polecenie doker uruchomić pojemnikdoker-komponować dla trybu Dom wakacyjny

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 

To było skomplikowane, więc starałem się utworzyć pliku Döcker-komponować się ten

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" 

Ale jestem nie wiem, gdzie przejść: -d, -i & -t Flagi z mojego oryginalnego polecenia dokowania Uruchom

Byłem uruchomiony dokowanie-komponować w ten sposób, że ktoś może wskazać mi właściwy kierunek tutaj?

UPDATE po pierwszej odpowiedzi

Próbowałem uruchomić docker-compose up -d

[email protected]:~/ubuntu# docker-compose up -d 
Creating ABC 
[email protected]:~/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 
[email protected]:~/ubuntu# 

nie wiem dlaczego jej w Exited statusu

Każdy pomysł?

Dzięki

+4

'doker-komponować się -d' – johnharris85

+1

Twój warunkiem' entrypoint' wykonuje 'bash',' bash' requries interaktywną sesję do uruchomienia.Wykonywanie 'docker-compose up -d' uruchamia kontener nieinteraktywny, dzięki czemu' bash' natychmiast wychodzi. Jeśli chcesz sesję interaktywną, wykonaj 'docker-compose run hdinsight'. – Pit

+0

Pit ma rację. Niestety, moja odpowiedź nie uwzględnia faktu, że próbujesz uruchomić interaktywnie. W górę tego nie robi. – Nauraushaun

Odpowiedz

8

Należy przeszukać plik Compose docs.

Większość poleceń doków jest odpowiednikiem komponentu i wszystkie powinny być tam wymienione.

Flaga tła -d przechodzi po , aby uruchomić lub w górę.

Flaga tty -t i flaga interakcyjna -i nie są wymagane jako praca w trybie dokowania does this by default. Możesz dodać tty do pojedynczych kontenerów w pliku do komponowania za pomocą -t, ale nie możesz używać trybu interaktywnego, ponieważ możesz uruchomić wiele kontenerów jednocześnie i nie możesz z nimi wszystkimi współdziałać.

W odniesieniu do Twojej sytuacji polecenie, którego używasz powinno działać. Jeśli dodasz -d po poleceniu run, uruchomi się ono w tle. Ale polecam użycie do zamiast uruchomić, ponieważ spowoduje to po prostu uruchomienie wszystkich kontenerów w pliku, zamiast określania hdinsight.

+0

Dzięki za odpowiedź, zaktualizowałem moje pytanie na podstawie tego. – roy

+0

Mam również problemy z docker-compose, wydaje mi się, że mogę użyć 'docker-compose run' do uruchomienia czegoś interaktywnie za pomocą tty, i działa dobrze, ale jeśli uruchomię to odłączone z -d, nie ma tty stworzony. Dla porównania 'docker run -dti image/bin/bash' tworzy tty i mogę je później dołączyć. W pliku docker-compose.yaml podałem 'tty: true'. Wydaje się więc, że ta odpowiedź nie jest poprawne, gdy używasz -d, czy robię coś nie tak? – Daniele

+0

Wygląda na to, że masz rację. Kiedy budujesz dokowanie, uruchom kontener z -d nie tworzy on tty, nie działa bash, a tym samym zatrzymuje się kontener. Dziwne, że istnieje rozbieżność między podobnymi poleceniami. – Nauraushaun

3

Dziś mam do czynienia z tym samym problemem, a poniżej jest sposób, w jaki sobie radzę.

dodam tty: true wartość Kay &stdin_open: true klucz wartość w 'Döcker-compose.yml' file jak poniżej i jestem pewien, że to będzie działać w trybie odłączania i można również interakcja z konsolą.

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 
Powiązane problemy