Запуск Docker-контейнеров обычно включает три компонента:
- Docker Client — это двоичный файл, который принимает команды от пользователя и обменивается данными с хостом
- Docker Daemon работает на хост-машине и выполняет тяжелую работу по сборке, запуску и распространению контейнеров Docker.
- Docker Registry — это платформа SaaS для обмена и управления образами Docker. Docker Hub является публичным центром. Также можно легко настроить частные реестры, например, Artifactory . Подробнее об этом в следующем блоге.
Docker Client обменивается данными с Daemon либо на одном хосте, либо на другом хосте. Он просит Daemon извлечь изображение из хранилища, используя команду pull . Затем Daemon загружает образ из Docker Hub или любого другого настроенного реестра. Несколько изображений можно загрузить из реестра и установить на хосте Daemon.
В типичной настройке среды разработки Docker Client и Host / Daemon будут располагаться на одном хост-компьютере. Даже если они находятся на разных компьютерах, все равно требуется войти в систему на хосте и настроить Docker Daemon для этой ОС.
Docker Machine переносит вас с нуля в Docker на хосте с помощью одной команды. Этот хост может быть вашим ноутбуком, в облаке или в вашем дата-центре. Он создает серверы, устанавливает на них Docker, а затем настраивает клиент Docker для связи с ними.
Это загружает ВМ boot2docker , устанавливает ssh-ключи, генерирует сертификаты, запускает ВМ. Это в основном берет на себя всю скучную работу, чтобы вы могли сосредоточиться на всех забавных вещах.
Этот технический совет покажет вам, как начать работать с Docker Machine и использовать его для настройки Docker Host на Mac. Он еще не работает в Windows из-за github.com/docker/machine/issues/742 .
Давайте начнем!
Установите Docker Machine
- Загрузите соответствующий двоичный файл с docs.docker.com/machine/#installation . Двоичный файл для Mac можно скачать как:
123456
~> curl -L https://github.com/docker/machine/releases/download/v0.1.0/docker-machine_darwin-amd64>/usr/local/bin/docker-machine% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed100 403 0 403 0 0 725 0 --:--:-- --:--:-- --:--:-- 726100 15.5M 100 15.5M 0 0 2276k 0 0:00:06 0:00:06 --:--:-- 3362k~>chmod+x/usr/local/bin/docker-machine - Проверьте установку как:
12
~> docker-machine -vdocker-machine version 0.1.0
Настройте хост Mac с помощью Docker Machine
- Docker Machine можно настроить для использования с несколькими драйверами, такими как Amazon Web Services, Google Compute Engine, Microsoft Azure и Oracle VirtualBox. На ноутбуке разработчика, Virtual Box — удобный вариант. Виртуальная коробка 4.3.20 является минимальным требованием. Поэтому убедитесь, что установлена правильная версия.
- Создайте Docker Host с помощью провайдера VirtualBox и назовите компьютер как «mydocker». Прежде чем вызывать эту команду, убедитесь, что ssh-keygen находится в PATH. На Mac это уже находится в / usr / bin / ssh-keygen. В Windows это можно установить как часть Git Bash. Это можно сделать следующим образом:
01020304050607080910
~> docker-machine create --driver virtualbox mydockerINFO[0000] Creating CA:/Users/arungupta/.docker/machine/certs/ca.pemINFO[0000] Creating client certificate:/Users/arungupta/.docker/machine/certs/cert.pemINFO[0002] Downloading boot2docker.iso to/Users/arungupta/.docker/machine/cache/boot2docker.iso...INFO[0006] Creating SSH key...INFO[0007] Creating VirtualBox VM...INFO[0018] Starting VirtualBox VM...INFO[0018] WaitingforVM to start...INFO[0051]"mydocker"has been created and is now the active machine.INFO[0051] To point your Docker client at it, run thisinyour shell: $(docker-machineenvmydocker)Это загрузит boot2docker с установленным демоном Docker и создаст и запустит виртуальную машину VirtualBox с работающим Docker.
- Найти IP-адрес машины как:
12
~> docker-machine ip192.168.99.101Запишите этот IP-адрес, он будет использоваться для доступа к приложению.
- Проверьте состояние работающей машины как:
123
~> docker-machinelsNAME ACTIVE DRIVER STATE URL SWARMmydocker * virtualbox Running tcp://192.168.99.101:2376*В столбцеACTIVEуказывает, что это активный хост. - Проверьте окружение вновь созданной машины как:
1234
~> docker-machineenvmydockerexportDOCKER_TLS_VERIFY=yesexportDOCKER_CERT_PATH=/Users/arungupta/.docker/machine/machines/mydockerexportDOCKER_HOST=tcp://192.168.99.101:2376
Настройка Docker клиента для связи
- Настройте ваш клиент для общения с этим хостом как:
1
$(docker-machineenvmydocker)
Запустите приложение Java на хосте
- Запустите приложение Java EE 7, описанное в практической лаборатории Java EE 7 на WildFly и Docker, на этом хосте:
01020304050607080910111213141516
docker run -it -p 8080:8080 arungupta/javaee7-holUnable tofindimage'arungupta/javaee7-hol'locallyPulling repository arungupta/javaee7-hola068decaf892: Download complete511136ea3c5a: Download complete5b12ef8fd570: Download completeae0c2d0bdc10: Download complete. . .03:13:20,449 INFO [org.jboss.resteasy.spi.ResteasyDeployment] (MSC service thread 1-12) Adding provider class org.javaee7.movieplex7.json.MovieReader from Application class org.javaee7.movieplex7.rest.ApplicationConfig03:13:20,554 INFO [org.wildfly.extension.undertow] (MSC service thread 1-12) JBAS017534: Registered web context:/movieplex703:13:20,596 INFO [org.jboss.as.server] (ServerService Thread Pool -- 31) JBAS018559: Deployed"movieplex7-1.0-SNAPSHOT.war"(runtime-name :"movieplex7-1.0-SNAPSHOT.war")03:13:20,674 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management03:13:20,675 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:999003:13:20,675 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.2.0.Final"Tweek"startedin10513ms - Started 400 of 452 services (104 services are lazy, passive or on-demand) - Откройте приложение по адресу 192.168.99.101:8080/movieplex7/ и оно выглядит следующим образом:
Команды докера
Полный список команд Docker Machine можно увидеть как:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
~> docker-machine NAME: docker-machine - Create and manage machines running Docker.USAGE: docker-machine [global options] command [command options] [arguments...]VERSION: 0.1.0AUTHOR: Docker Machine Contributors - <https://github.com/docker/machine>COMMANDS: active Get or set the active machine create Create a machine config Print the connection config for machine inspect Inspect information about a machine ip Get the IP address of a machine kill Kill a machine ls List machines restart Restart a machine rm Remove a machine env Display the commands to set up the environment for the Docker client ssh Log into or run a command on a machine with SSH start Start a machine stop Stop a machine upgrade Upgrade a machine to the latest version of Docker url Get the URL of a machine help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --debug, -D Enable debug mode --storage-path "/Users/arungupta/.docker/machine" Configures storage path [$MACHINE_STORAGE_PATH] --tls-ca-cert "/Users/arungupta/.docker/machine/certs/ca.pem" CA to verify remotes against [$MACHINE_TLS_CA_CERT] --tls-ca-key "/Users/arungupta/.docker/machine/certs/ca-key.pem" Private key to generate certificates [$MACHINE_TLS_CA_KEY] --tls-client-cert "/Users/arungupta/.docker/machine/certs/cert.pem" Client cert to use for TLS [$MACHINE_TLS_CLIENT_CERT] --tls-client-key "/Users/arungupta/.docker/machine/certs/key.pem" Private key used in client TLS auth [$MACHINE_TLS_CLIENT_KEY] --help, -h show help --version, -v print the version |
Узнайте больше о Docker Machine, Swarm и Compose в этом видео:
Зачем вам использовать что-то кроме Docker Machine для настройки хоста Docker? Как вы настраиваете Docker Host в противном случае?
Несколько полезных ссылок:
Наслаждайтесь!
| Ссылка: | Docker Machine для настройки Docker Host от нашего партнера JCG Аруна Гупты в блоге Miles to go 2.0… . |

