2015-10-21 20 views
6

Ich bin neu im Andockfenster und möchte es im Daemon-Modus starten und eine bestimmte IP-Adresse und einen bestimmten Port abhören. In der wird gesagt, dass dies getan werden kann, indem sudo /usr/bin/docker daemon -H 0.0.0.0:5555 geschrieben wird. Es besagt dann, dass ich laufende Container mit diesem Befehl docker ps auflisten kann. Wenn ich dies versuche, erhalte ich die folgende Meldung:Korrekter Weg zum Starten des Docker-Daemons, der einen bestimmten Port abgehört

Get http:///var/run/docker.sock/v1.20/containers/json?all=1: Wählen Sie Unix /var/run/docker.sock: keine solche Datei oder Verzeichnis.

  • Versuchen Sie, eine Verbindung zu einem TLS-fähigen Daemon ohne TLS herzustellen?
  • Ist Ihr Docker-Daemon betriebsbereit?

Ich kann nicht damit interagieren. Ich habe nach einer Lösung gesucht, aber ohne Glück. Irgendwelche Vorschläge?

P.S. Wie kann ich diesen Daemon im Hintergrund ausführen? Ich habe versucht, eine & anzufügen, aber ich bin auf der Ausgabe bis zum Drücken von Strg + C fest.

Vielen Dank im Voraus

+1

"nohup" ist das, was Sie suchen. Sehen Sie hier http://StackOverflow.com/Questions/10408816/how-do-i-use-the-Nohup-Command-withoutout-Nohup-Out –

+0

Das Verhalten hängt von Ihrem Betriebssystem ab. Welches Betriebssystem verwenden Sie? –

+0

Sorry, ich habe vergessen zu erwähnen, dass ich Ubuntu 14.04 – sengbatz

Antwort

4

Ich habe eine Lösung für mein Problem gefunden. Ich habe Docker angegeben, der auf IP x und Port y läuft, aber Docker hört nur auf diesen Socket.Ich hatte eine andere -H Flagge mit dem Unix-Socket, um auf lokale Anfragen zu hören hinzuzufügen:

sudo /usr/bin/docker daemon -H tcp://0.0.0.0:5555 -H unix:///var/run/docker.sock 
4

Auf Mac OSX Sie die Docker Quickstart-Terminal App sehen würde laufen:

Machine default already exists in VirtualBox. 
Starting machine default... 
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command. 
Setting environment variables for machine default... 

...

     ##   . 
        ## ## ##  == 
       ## ## ## ## ## === 
      /"""""""""""""""""\___/ === 
     ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~/===- ~~~ 
      \______ o   __/ 
      \ \   __/ 
       \____\_______/ 


docker is configured to use the default machine with IP 192.168.99.100 
For help getting started, check out the docs at https://docs.docker.com 

jetzt

docker ps 

sollte funktionieren

Auf Linux z. Ubuntu-Vorab-Sudo könnte notwendig sein. Zum Beispiel

docker ps 

führt zu:

Get http:///var/run/docker.sock/v1.20/containers/json: dial unix /var/run/docker.sock: permission denied. 
* Are you trying to connect to a TLS-enabled daemon without TLS? 
* Is your docker daemon up and running? 

aber

sudo docker ps 

arbeiten.

Siehe https://docs.docker.com/articles/basics/

Um zu überprüfen, ob Ihr Docker-Dienst ausgeführt wird Sie

sudo service --status-all 2>&1 | grep docker 

nennen kann und es zeigen sollte:

[ - ] docker 

Manchmal ist Ihr Docker instllation korrupt sein könnte sehen : Docker daemon does not start or restart

+0

ich Sudo vorangestellt, aber das hilft nicht. Ich erhalte die folgende Meldung: 'Kann keine Verbindung zum Docker-Daemon herstellen. Ist 'docker -d' auf diesem Host ausgeführt? 'Allerdings ist Ihr Vorschlag mit' sudo service --status-all 2> & 1 | grep docker "gibt mir die erwartete Ausgabe. Hier ist, wie ich Docker installiert habe (ich mache es über ein Skript): 'sudo touch/etc/apt/sources.list.d/docker.list' 'sudo -u root bash -c" echo "deb https: // apt. dockerproject.org/repo ubuntu-trusty main '' /etc/apt/sources.list.d/docker.list "' – sengbatz

+0

'sudo apt-schlüssel adv --keyserver hkp: //pgp.mit.edu: 80 - -recv-keys 58118E89F3A912897C070ADBF76221572C52609D' 'sudo apt-get Aktualisierung'' sudo apt-get -y Installation docker-engine' 'sudo Dienst docker stop'' sudo/usr/bin/docker Daemon -H 0.0.0.0: 5555 & 'PS: Wie kann ich einen Zeilenumbruch in Kommentaren machen? – sengbatz

0

Aus irgendeinem Grund Lösung Phoenix wurde mir Fehler geben. So fand ich eine alternative

Weg-

I edited /etc/sysconfig/Docker und änderte den Parameter OPTIONS

OPTIONS='--selinux-enabled -H=unix:///var/run/docker.sock -H=0.0.0.0:2375' 

dann neu gestartet ich die Docker Daemon

systemctl restart docker 

und hat funktioniert.

4

Unter Ubuntu (16.04 LTS) mit docker-ce (17.03.1~ce-0~ubuntu-xenial) gehen Sie folgendermaßen vor, damit docker einen TCP-Port anstelle von Sockets abhört.

eine Datei /etc/systemd/system/docker.service.d/override.conf mit folgendem Inhalt hinzufügen:

[Service] 
ExecStart= 
ExecStart=/usr/bin/dockerd 

Fügen Sie eine Datei /etc/docker/daemon.json mit folgendem Inhalt

{ 
    "hosts": [ 
     "tcp://127.0.0.1:2375" 
    ] 
} 

Reload (systemctl daemon-reload) und Neustart (systemctl restart docker.service) Docker.

Zum Vergleich: https://github.com/moby/moby/issues/25471

EDIT:

Seien Sie vorsichtig, so dass der Dämon nur mit diesem Netzwerk-Port ignorieren lokale Anfragen abhört. Um Docker sowohl zu hören Remote- und lokalen, bearbeiten daemon.json aber halten die Standard-Unix-Socket

{ 
     "hosts" : [ 
       "unix:///var/run/docker.sock", 
       "tcp://<docker-host-ip-or-localhost>:2375" 
     ] 
} 

Docker Daemon Anschlussmöglichkeiten docs