Показ дописів із міткою докер-команда. Показати всі дописи
Показ дописів із міткою докер-команда. Показати всі дописи

вівторок, 31 травня 2016 р.

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

Тепер розглянемо, одну з найпростіших докер-команд, команду `info`:

$ docker info --help

Usage:  docker info [OPTIONS]

Display system-wide information

  --help             Print usage

Жодних додаткових параметрів ця команда не потребує. Єдиний додатковий
(не обов"язковий) параметр, який може бути задіяний – це `--help`,
який ми щойно використали. Виконання команди:

$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.10.3
Storage Driver: devicemapper
 Pool Name: docker-8:7-8602006-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: ext4
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 305.7 MB
 Data Space Total: 107.4 GB
 Data Space Available: 17.26 GB
 Metadata Space Used: 733.2 kB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.147 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /str/data-storage/docker20/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
 Metadata loop file: /str/data-storage/docker20/devicemapper/devicemapper/metadata
 Library Version: 1.02.93 (2015-01-30)
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
 Volume: local
 Network: bridge null host
Kernel Version: 4.1.12-gentoo
Operating System: Gentoo/Linux
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.682 GiB
Name: demi
ID: DQI2:SBOZ:JUTI:7TAG:UO7W:IAYV:IIEF:PJTZ:7YEW:NYVO:G55Z:NIED
Username: atykhonov
Registry: https://index.docker.io/v1/

Ця команда виводить коротку інформацію про поточну систему (Kernel
Version, OSType тощо), версію докер сервера (1.10.3) про наявну
кількість контейнерів (образів) і багато іншої довідкової інформації.

субота, 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?

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