суботу, 14 травня 2016 р.

Докер-команда `version`

На самому початку, пропоную отримати допомогу по докер-команді
`version`:

$ docker version --help

Usage:  docker version [OPTIONS]

Show the Docker version information

  -f, --format       Format the output using the given go template
  --help             Print usage

Це коротка довідкова інформація про те, як саме можна скористатися
докер-командою `version`, які параметри вона може прийняти. Як бачимо,
цій команді можна передати два параметри (OPTIONS), які є не
обов'язковими (тому що в квадратних дужках): `-f` та
`--help`. Останній ми щойно спробували, а параметр `-f` можливо
розглянемо іншим разом. Оскільки ці параметри є не обов'язковими,
докер-команду `version` можна запустити наступним чином:

$ docker version
Client:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.6
 Git commit:   20f81dd
 Built:        
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.6
 Git commit:   20f81dd
 Built:        
 OS/Arch:      linux/amd64

Отримали інформацію про клієнт та сервер: версії програм, версії API,
встановлені версії мови програмування go (за допомогою якого створений
docker) тощо.

Docker побудований на основі архітектури клієнт-сервер. Для того, щоби
скористатися докером, нам потрібен клієнт, а клієнту необхідний
сервер.

Запускаючи будь-яку команду (наприклад `docker version`), ми тим самим
запускаємо клієнт (docker). Він, у свою чергу, під'єднується до
сервера, та передає йому поточну команду. Задача клієнта – отримати
від користувача команду та передати її серверу, а пізніше – отримати
відповідь від сервера та повернути її користувачу. Задача сервера –
виконати отриману від клієнта команду, та повернути результат її
виконання.

Спробуйте зупинити сервер (демон) докера. На Ubuntu, для прикладу, це
можна зробити наступним чином:

$ sudo service docker stop

Якщо докер-сервер зупинений, то отримаємо наступний результат:

$ docker version
Client:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.6
 Git commit:   20f81dd
 Built:        
 OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Клієнт повернув усю відому про себе інформацію, а також спробував
приєднатися до сервера та виконати команду `version`, але приєднатися
до сервера не вдалося (про що і йдеться в останній стрічці виводу).

Запустіть сервер знову і виконайте команду `ps aux | grep docker`:

$ ps aux | grep docker
root     18016 10.0  0.4 329016 32376 ?        Ssl  17:43   0:00 /usr/bin/docker daemon -p /run/docker.pid

Отримали інформацію про запущений процес докер-сервера. Цікавим є те,
що клієнт та сервер використовують одну і ту саму програму:
`/usr/bin/docker`. В залежності від параметрів які передаються цій
програмці, вона поводиться або як клієнт, або як сервер. При передачі
параметра `daemon`, докер буде поводитись як сервер (демон).

Мабудь відразу варто зауважити, що щоби скористатися докер-сервером,
не обов'язково знаходитися на одному і тому самому комп'ютері. Ним,
завдяки клієнт-серверній архітектурі, можна скористатися і віддалено,
з іншого комп'ютера:

$ docker --host=tcp://example.com:/var/run/docker.sock
Client:
 Version:      1.11.0
 API version:  1.23
 Go version:   go1.6
 Git commit:   4dc5990
 Built:        
 OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Звісно, сервер повинен бути відповідно налаштований, щоб мати
можливість співпрацювати з нашим клієнтом. В інакшому випадку
отримаємо таку ж помилку, яку щойно отримали.

Немає коментарів:

Дописати коментар