Syntax highlighting of 2cf7609 ~( DockerRemote)
# Docker Remote > ВНИМАНИЕ! Статья актуальна на 2018 год. Управление докером на удаленной машине Источники: https://docs.docker.com/engine/admin/#configure-the-docker-daemon https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-socket-option https://docs.docker.com/engine/security/https/#secure-by-default https://github.com/moby/moby/issues/25471 ### Операции на удаленной машине Создаем новую директорию, например certs, и переходим в нее ```bash mkdir ~/certs cd ~/certs ``` Выполняем инструкцию https://docs.docker.com/engine/security/https/ В результате должно получиться нечто похожее на это: ```bash ~/certs$ ll total 40 drwxr-xr-x 2 misuz misuz 4096 авг 14 20:14 ./ drwxr-xr-x 10 misuz misuz 4096 авг 14 20:46 ../ -r-------- 1 misuz misuz 3326 авг 14 20:01 ca-key.pem -r--r--r-- 1 misuz misuz 1972 авг 14 20:04 ca.pem -rw-r--r-- 1 misuz misuz 17 авг 14 20:13 ca.srl -r--r--r-- 1 misuz misuz 1797 авг 14 20:13 cert.pem -rw-r--r-- 1 misuz misuz 30 авг 14 20:13 extfile.cnf -r-------- 1 misuz misuz 3243 авг 14 20:12 key.pem -r--r--r-- 1 misuz misuz 1818 авг 14 20:11 server-cert.pem -r-------- 1 misuz misuz 3247 авг 14 20:09 server-key.pem misuz@misuz:~/certs$ ``` Создаем директорию */var/docker* и копируем туда некоторые файлы ```bash sudo mkdir /var/docker sudo cp ca.pem server-cert.pem server-key.pem /var/docker ls /var/docker ca.pem server-cert.pem server-key.pem ``` Останавливаем докер-демон ```bash sudo service docker stop ``` Изменяем конфигурацию по-умолчанию докер-демона ```bash sudo mkdir /etc/systemd/system/docker.service.d/ sudo vim /etc/systemd/system/docker.service.d/override.conf # /etc/systemd/system/docker.service.d/hosts.conf ``` ``` # /etc/systemd/system/docker.service.d/override.conf [Service] ExecStart= ExecStart=/usr/bin/dockerd ``` Перезапускаем systemd-демон ```bash sudo systemctl daemon-reload sudo systemctl restart docker.service ``` Создаем (корректируем) файл конфигурации докер-демона ```bash sudo vim /etc/docker/daemon.json ``` ```json { "debug": true, "tls": true, "tlscacert": "/var/docker/ca.pem", "tlscert": "/var/docker/server-cert.pem", "tlskey": "/var/docker/server-key.pem", "hosts": ["fd://", "tcp://0.0.0.0:2376"] } ``` Запускаем докер-демон ```bash sudo service docker start sudo service docker status # --- sudo systemctl daemon-reload sudo systemctl restart docker.service systemctl cat docker | grep Exec # --- журналы systemctl status docker.service journalctl -xe ``` ### Операции на локальной машине Создаем директорию *.docker* в домашней директории пользователя Копируем файлы из директории *certs* в директорию ~/.docker *ca.pem* *сert.pem* *key.pem* Получаем доступ к удаленному докеру ```bash DOCKER_HOST=tcp://misuz.ru:2376 DOCKER_TLS_VERIFY=1 docker ps DOCKER_HOST=tcp://misuz.ru:2376 DOCKER_TLS_VERIFY=1 docker-compose --file docker-compose.yml pcs ps ``` ### Операции на очередной удаленной машине Если есть необходимость управлять докерами на разных удаленных машинах, то на второй и последующей машинах требуется выполнить ограниченый перечень операций Создаем новую директорию, например certs, и переходим в нее ```bash mkdir ~/certs cd ~/certs ``` Копируем в эту директорию файлы *ca-key.pem* и *ca.pem* Выполняем инструкцию https://docs.docker.com/engine/security/https/ в части создания файлов *server-key.pem* и *server-cert.pem*. Клиентские файлы создавать не надо. Далее выполняем все операции, начиная с позиции "Создаем директорию */var/docker* и копируем туда некоторые файлы" раздела "Операции на удаленной машине". ### Обобщенный алгоритм 1) ca-key.pem 2) ca-key.pem -> ca.pem --- серверная часть --- 3) server-key.pem 4) server-key.pem -> server.csr 5) server.csr + ca.pem + ca-key.pem -> server-cert.pem --- клиентская часть --- 6) key.pem 7) key.pem -> client.csr 8) client.csr + ca.pem + ca-key.pem -> cert.pem > Written with [StackEdit](https://stackedit.io/).
