2016-07-09 8 views
1

Wenn DOCKER_TLS_VERIFY, DOCKER_HOST und DOCKER_CERT_PATH nicht auf Ubuntu gesetzt, was die Standardeinstellungen sind die Vars von mir zu exportieren (ich verwende Docker Maschine nicht)? dieseDOCKER_TLS_VERIFY, DOCKER_HOST und DOCKER_CERT_PATH auf Ubuntu

ps aux | grep "docker daemon" 

kehrt:

root  1828 2.4 0.5 764036 44804 ?  Ssl 21:32 0:01 /usr/bin/docker daemon --raw-logs 
alexzei+ 6557 0.0 0.0 15948 2268 pts/15 S+ 21:33 0:00 grep --color=auto docker daemon 

Antwort

4

Die Standardwerte sind nicht gesetzt und der Docker cli standardmäßig mit /var/run/docker.sock und/oder systemd zu laufen. Von Ihrem Kommentar zu ldg haben Sie jedoch eine App, für die diese festgelegt werden müssen. Dies würde bedeuten, dass Sie TLS auf Ihrem Host für den Remotezugriff konfigurieren möchten. Hier sind die Schritte, die TLS-Schlüssel zu konfigurieren:

Setup-CA

# work in a secure folder 
mkdir docker-ca && chmod 700 docker-ca && cd docker-ca 
# generate a key pair for the CA 
openssl genrsa -aes256 -out ca-key.pem 2048 
# setup CA certificate 
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem 
    # make sure to set CN 

Server-Zertifikat

# generate a new host key pair 
openssl genrsa -out myserver-key.pem 2048 
# generate certificate signing request (CSR) 
openssl req -subj "/CN=myserver" -new -key myserver-key.pem -out myserver.csr 
# setup extfile for ip's to allow 
echo "subjectAltName = IP:$myserver_ip, IP:127.0.0.1" >extfile.cnf 
# sign the key by the CA 
openssl x509 -req -days 365 -in myserver.csr -CA ca.pem -CAkey ca-key.pem \ 
    -CAcreateserial -out myserver-cert.pem -extfile extfile.cnf 
# test server by updating service: 
/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2376 --tlsverify \ 
    --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/myserver-cert.pem \ 
    --tlskey=/etc/docker/myserver-key.pem 

Sie müssen aktualisieren Sie Ihre OS-Startskript für Docker die oben in ihm haben (-H unix:/var/run/docker.sock würde anstelle von -H fd:// verwendet werden, wenn Sie nicht Systemd haben).

Client-Zertifikat

In ".docker" können Sie hinzufügen: "ca.pem, key.pem, cert.pem" und dann export DOCKER_TLS_VERIFY=1

# create a client key pair 
openssl genrsa -out client-key.pem 2048 
# generate csr for client key 
openssl req -subj '/CN=client' -new -key client-key.pem -out client.csr 
# configure request to support client 
echo extendedKeyUsage = clientAuth >extfile.cnf 
# sign the client key with the CA 
openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem \ 
    -CAcreateserial -out client-cert.pem -extfile extfile.cnf 
# test client with 
docker --tlsverify \ 
    --tlscacert=ca.pem --tlscert=client-cert.pem --tlskey=client-key.pem \ 
    -H=tcp://127.0.0.1:2376 info` 

Dann wird der Ordner DOCKER_CERT_PATH würde mit Ihrem Zertifikate, z /home/user/.docker.

2

Sie konnten dieses versuchen:

Wenn Sie mit Anwendungen wie Apache Maven arbeiten, die Einstellungen für DOCKER_HOST und DOCKER_CERT_PATH Umgebungsvariablen erwarten, angeben diese Verbindungen zu Docker-Instanzen über Unix-Sockets herzustellen. Für Beispiel:

export DOCKER_HOST=unix:///var/run/docker.sock

+0

ich ein Tool bin mit, die auf diesen Variablen –

1

Verwenden export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://0.0.0.0:2376" export DOCKER_CERT_PATH="/etc/docker/server.pem"

Sie können die Werte auf Ihrem System erfahren Sie

ps aux | grep "docker daemon" 

Zum Beispiel verwendet wird, in meinem Fall habe ich root 25161 0.0 1.8 545784 38496 ? Ssl 07:11 0:00 /usr/bin/docker daemon -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=amazonec2

bekommen

Sie können jedoch sudo verwenden Docker

sudo docker ps

+0

Dank beruht, habe ich meine Frage aktualisiert. ps aux output sieht anders aus –

+0

Ich habe 2 server.pem Dateien gefunden, aber sie sind für Docker Machine. Ich möchte die Vars für Plain Docker auf Ubuntu einstellen. –