drholy revised this gist 7 hours ago. Go to revision
1 file changed, 2 insertions, 1 deletion
add_new_docker_node.md
| @@ -61,4 +61,5 @@ sudo systemctl restart docker | |||
| 61 | 61 | ||
| 62 | 62 | | Плюсы | Минусы | | |
| 63 | 63 | |-------|--------| | |
| 64 | - | | • Не требуется дополнительное ПО на хосте — только сам Docker-демон.<br>• Прямой «родной» API-доступ без прокси. | • Настройка TLS и ротация сертификатов добавляют сложность.<br>• Без надёжного шифрования и firewall — уязвимость для посторонних. | | |
| 64 | + | | • Не требуется дополнительное ПО на хосте — только сам Docker-демон. | • Настройка TLS и ротация сертификатов добавляют сложность. | | |
| 65 | + | | • Прямой «родной» API-доступ без прокси.| • Без надёжного шифрования и firewall — уязвимость для посторонних. | | |
drholy revised this gist 7 hours ago. Go to revision
1 file changed, 64 insertions
add_new_docker_node.md(file created)
| @@ -0,0 +1,64 @@ | |||
| 1 | + | # Portainer и способы подключения внешних Docker-хостов | |
| 2 | + | ||
| 3 | + | Portainer позволяет добавлять в свою панель не только локальный Docker-демон, но и удалённые Docker-хосты. Способы интеграции бывают разные — часть из них предназначена для Docker Swarm, Kubernetes или Podman, но мы рассмотрим лишь два метода, актуальных для классического Docker и Docker Compose: | |
| 4 | + | ||
| 5 | + | - Прямое подключение к Docker API по TCP. | |
| 6 | + | - Использование Portainer Agent. | |
| 7 | + | ||
| 8 | + | Разберём каждый метод подробнее. | |
| 9 | + | ||
| 10 | + | --- | |
| 11 | + | ||
| 12 | + | ## 1. Подключение по Docker API | |
| 13 | + | ||
| 14 | + | При таком подходе Portainer напрямую обращается к Docker-демону на удалённом сервере через HTTP(S). Docker-демон должен слушать TCP-порт `2375` (без TLS) или `2376` (с TLS), а Portainer при добавлении эндпоинта указывает соответствующий адрес. | |
| 15 | + | ||
| 16 | + | ### Настройка на хосте | |
| 17 | + | ||
| 18 | + | Откройте файл конфигурации Docker-демона: | |
| 19 | + | ||
| 20 | + | ```bash | |
| 21 | + | sudo nano /etc/docker/daemon.json | |
| 22 | + | ``` | |
| 23 | + | ||
| 24 | + | Добавьте блок `hosts`: | |
| 25 | + | ||
| 26 | + | #### Без TLS (все запросы открыты): | |
| 27 | + | ||
| 28 | + | ```json | |
| 29 | + | { | |
| 30 | + | "hosts": [ | |
| 31 | + | "unix:///var/run/docker.sock", | |
| 32 | + | "tcp://0.0.0.0:2375" | |
| 33 | + | ] | |
| 34 | + | } | |
| 35 | + | ``` | |
| 36 | + | ||
| 37 | + | #### С TLS (шифрование трафика): | |
| 38 | + | ||
| 39 | + | ```json | |
| 40 | + | { | |
| 41 | + | "tlsverify": true, | |
| 42 | + | "tlscacert": "/path/to/ca.pem", | |
| 43 | + | "tlscert": "/path/to/server-cert.pem", | |
| 44 | + | "tlskey": "/path/to/server-key.pem", | |
| 45 | + | "hosts": [ | |
| 46 | + | "unix:///var/run/docker.sock", | |
| 47 | + | "tcp://0.0.0.0:2376" | |
| 48 | + | ] | |
| 49 | + | } | |
| 50 | + | ``` | |
| 51 | + | ||
| 52 | + | Перезапустите Docker: | |
| 53 | + | ||
| 54 | + | ```bash | |
| 55 | + | sudo systemctl restart docker | |
| 56 | + | ``` | |
| 57 | + | ||
| 58 | + | > 🔒 **Важно**: если вы отключаете TLS-шифрование, обязательно настройте firewall так, чтобы доступ к порту был только с доверенных IP-адресов. Иначе любой сможет управлять вашим Docker. | |
| 59 | + | ||
| 60 | + | ### Плюсы и минусы | |
| 61 | + | ||
| 62 | + | | Плюсы | Минусы | | |
| 63 | + | |-------|--------| | |
| 64 | + | | • Не требуется дополнительное ПО на хосте — только сам Docker-демон.<br>• Прямой «родной» API-доступ без прокси. | • Настройка TLS и ротация сертификатов добавляют сложность.<br>• Без надёжного шифрования и firewall — уязвимость для посторонних. | | |