В большинстве распространенных дистрибутивов Linux для установки Docker вам необходимо выполнить в терминале:
$ curl -fsSL get.docker.com -o /tmp/get-docker.sh && sudo sh /tmp/get-docker.sh
Для Windows и macOS воспользуйтесь официальным гайдом.
Установка docker-compose (Linux):
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose
Для того, чтобы иметь возможность работать с докером из-под текущего пользователя, добавьте его в группу docker
:
$ sudo usermod -aG docker <your-user>
Инструкция по генерации паролей и .htpasswd
-файла находится здесь.
Скопируйте конфиг-файл по умолчанию и измените его основные параметры:
$ cp example.env .env
$ cat .env
DOMAIN=domain.ru
[email protected]
Key | Value |
---|---|
DOMAIN |
Базовый домен. Все сервисы разворачиваются на его поддоменах. |
EMAIL |
Электронная почта администратора. Используется для регистрации в Let's Encrypt. Некоторые сервисы используют её в качестве логина. |
- Создайте директорию для хранения данных:
$ mkdir -p data
- Запустите
nginx-proxy
:
# docker network create nginx-proxy
# docker-compose -f nginx-proxy.yml up -d
Перед запуском любой службы проверьте этот файл конфигурации и запишите конфиденциальные данные.
Запуск сервиса:
# docker-compose -f <service>.yml up -d
Common configuration file
Default nginx-proxy config file is located at nginx-proxy.conf
. By default, it's empty, here is a sample configuration to redirect from example.com
to www.example.com
:
client_max_body_size 500m;
server {
listen 80;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
See it at nginx-proxy.conf.
Basic auth for subdomain
You can set basic auth for any subdomain here:
# htpasswd [-c] -b ./data/htpasswd/subdomain.domain.com <username> <password>
For example, pass password for cadvisor:
# htpasswd -c -b ./data/htpasswd/monitor.${DOMAIN} admin admin
URL: http://registry.example.com Web UI: http://ui.registry.example.com
Common configuration
Default registry config file is located at /data/registry/config/config.yml
. By default, it's empty, here is a sample configuration:
version: 0.1
log:
fields:
service: registry
storage:
delete:
enabled: true
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
Access-Control-Allow-Origin: ['https://ui.registry.example.com']
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
Access-Control-Allow-Headers: ['Authorization']
Access-Control-Max-Age: [1728000]
Access-Control-Allow-Credentials: [true]
Access-Control-Expose-Headers: ['Docker-Content-Digest']
Private registry basic auth
Add user to private registry:
# htpasswd -c -b ./registry.htpasswd <usernane> <password>
htpasswd example:
# cat ./registry.htpasswd
user:$apr1$tKcKlnKE$lNVIUcWxZPhKrZ7.u5qId/
URL: http://ci.example.com
Config: drone.env
More: https://docs.drone.io/installation/overview/