2017-01-24 9 views
5

Dla życia mnie nie może wydawać się, aby dowiedzieć się, dlaczego ctrl - p i ctrl - n nie działają tak jak oni” powinienem pod obrazami Dockera, z którymi pracowałem. ctrl - p powinien działać tak jak strzałki się ale zwykle trzeba nacisnąć go dwukrotnie, aby dostać ostatnią komendę wpadłem. I przechodzi przez historię w sposób, który wydaje się przypadkowy.Ctrl-P i Ctrl-n zachowuje się niespodziewanie pod Döcker

Może ktoś mi pomoże w zrozumieniu tego.

docker run -it buildpack-deps:trusty # run a Linux based image 

[email protected]:/# ls 
bin boot dev etc home lib lib64 ... 
[email protected]:/# touch hello 

Gdybym naciśnij się tutaj, powinno pokazać polecenie touch, a następnie ls. Jeśli jednak naciśniesz Ctrl - p jednak nic nie wyjdzie pierwszy raz. Kiedy ponownie go wciskam, ls pojawia się magicznie.

Czy ktoś może mi pomóc w zrozumieniu tego. Nie można się obywać bez Ctrl - P i Ctrl - n.

Odpowiedz

11

Wygląda to zostało usunięte (lub przeniesiony) w Dokumentach, ale kiedyś tu żyć: https://docs.docker.com/engine/reference/commandline/attach/

Edit: Wygląda na to wskazywały one poniżej w dokumentacji Configuration Files.

Sekwencja polecenie odłączenia od pojemnika dokowanym jest Ctrl - PCtrl - q, dlatego Ctrl - P nie działa prawidłowo. Kiedy trafisz ctrl - p, doker czeka na ctrl - q, więc nic się nie dzieje.

Można użyć nowego --detach-keys argument docker run przesłonić tę sekwencję być coś innego niż ctrl - p:

docker run -ti --detach-keys="[email protected]" ubuntu:14.04 bash 

$# ls 
$# <--- Ctrl-P here will display ls now 
$# <--- [email protected] here will detach from the running container 

Jeśli chcesz, możesz dodać go do pliku na ~/.docker/config.json utrzymują tę zmianę:

{ 
    ... 
    "detachKeys": "[email protected]", 
    ... 
} 

Więcej szczegółów na ten temat można znaleźć tutaj: https://github.com/docker/docker/pull/15666 jak ca nie można go już znaleźć w dokumentach.

+0

Używam Docker na Maca i nie mam w ogóle katalogu ~/.docker. Nie mogę znaleźć mojego config.json. – jaywhy13

+0

OK, wygląda na to, że katalog ~/.docker nie zostanie utworzony, dopóki nie użyjesz logowania do doka, więc można go bezpiecznie utworzyć, jeśli nie istnieje. Pracuję teraz pod Dockerem, ale nie działa pod Docker-Compose. Czy komponujesz użyć innego pliku? – jaywhy13

+0

Hm, 'docker-compose' nie powinno mieć znaczenia, ponieważ łączy się z tym samym uruchomionym demonem docker, w którym jest załadowana konfiguracja. Właśnie to przetestowałem i działało pod 'docker-compose' dla mnie, chociaż nie jestem pewien, czy to zachowanie jest inne dla OSX. –

Powiązane problemy