Статьи

Новые функции в Docker 1.9, включая виртуальные сети и постоянное хранилище

Docker 1,9  отпущен, прочитайте  Объявляя Docker 1.9  для получения полной информации. Этот выпуск содержит:

  • Docker 1.9.0 Бинарный клиент
  • Docker Machine 0.5.0
  • Docker Compose 0.5.0
  • Docker Toolbox 1.9.0
  • Docker Swarm 1.0.0

Некоторые из ключевых особенностей:

  • Создавайте виртуальные сети, которые охватывают несколько хостов и поддерживаются несколькими плагинами, такими как Calico, Weave, Cisco и другие ( полная информация ).
  • Поддержка постоянного хранения с использованием новой системы управления томами и поддерживаемых Flocker или Ceph ( полная информация ).
  • Docker Swarm 1.0.0 и готов к производству, протестирован с 1000 узлов и 30 000 контейнеров ( полный список , Announcing Swarm 1.0 ).
  • Код Docker Machine разбит на основной клиент Docker Machine и несколько двоичных файлов, по одному для каждого драйвера ( полный список ).
  • Docker Compose теперь работает в Windows, переменные среды поддерживаются в docker-compose.ymlфайле ( полный список ).

Начало работы с Docker

Если вы никогда не устанавливали Docker на свой компьютер, то Docker Toolbox 1.9.0 установит все необходимое для начала работы с Docker на Mac OS X и Windows. В него даже входит Virtual Box 5.0.8.

Docker 1.9 Панель инструментов

Загрузите Docker Toolbox 1.9.0 для Mac или  Windows .

Конечно, вы можете apt-get install docker-engineна Ubuntu или yum install docker-engineCentOS.

Если вам нравится обновлять двоичные файлы самостоятельно или научиться использовать их для начала, читайте дальше!

Установите Docker 1.9.0 CLI Binary

Загрузите последний бинарный файл Docker CLI:

> curl -L https://get.docker.com/builds/Darwin/x86_64/docker-1.9.0 > /usr/local/bin/docker
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 9010k  100 9010k    0     0   211k      0  0:00:42  0:00:42 --:--:--  213k
> docker -v
Docker version 1.9.0, build 76d6bc9

Установите Docker Machine 0.5.0

Docker Machine позволяет создавать Docker Engines на вашем ноутбуке, в облаке или внутри вашего центра обработки данных.

Логотип Docker Machine

Загрузите последний бинарный файл Docker Machine:

~ > curl -L https://github.com/docker/machine/releases/download/v0.5.0/docker-machine_darwin-amd64.zip >machine.zip && \
>   unzip machine.zip && \
>   rm machine.zip && \
>   mv -f docker-machine* /usr/local/bin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   608    0   608    0     0    777      0 --:--:-- --:--:-- --:--:--   778
100 38.9M  100 38.9M    0     0   208k      0  0:03:11  0:03:11 --:--:--  118k
Archive:  machine.zip
  inflating: docker-machine          
  inflating: docker-machine-driver-amazonec2  
  inflating: docker-machine-driver-azure  
  inflating: docker-machine-driver-digitalocean  
  inflating: docker-machine-driver-exoscale  
  inflating: docker-machine-driver-generic  
  inflating: docker-machine-driver-google  
  inflating: docker-machine-driver-hyperv  
  inflating: docker-machine-driver-none  
  inflating: docker-machine-driver-openstack  
  inflating: docker-machine-driver-rackspace  
  inflating: docker-machine-driver-softlayer  
  inflating: docker-machine-driver-virtualbox  
  inflating: docker-machine-driver-vmwarefusion  
  inflating: docker-machine-driver-vmwarevcloudair  
  inflating: docker-machine-driver-vmwarevsphere

Docker Machine разделена на несколько двоичных файлов — один для основного клиента Docker Machine и двоичный файл для каждого драйвера. Так что установка отличается от предыдущих выпусков.

И создайте новую машину как:

~ > docker-machine create -d=virtualbox lab
Running pre-create checks...
Creating machine...
Waiting for machine to be running, this may take a few minutes...
Machine is running, waiting for SSH to be available...
Detecting operating system of created instance...
Provisioning created instance...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
To see how to connect Docker to this machine, run: docker-machine env lab

Новый компьютер, созданный с использованием этого, не может быть запрошен Docker CLI ( # 2147 ). Явное обновление машины с помощью docker-machine upgrade labпомогло решить проблему.

> docker-machine upgrade lab
Stopping machine to do the upgrade...
Upgrading machine lab...
Latest release for github.com/boot2docker/boot2docker is v1.9.0

Downloading https://github.com/boot2docker/boot2docker/releases/download/v1.9.0/boot2docker.iso to /Users/arungupta/.docker/machine/cache/boot2docker.iso...
Starting machine back up...

Надеюсь, это всего лишь вопрос времени и не будет происходить в будущем.

Docker Compose 0.5.0

Docker Compose позволяет легко запускать мультиконтейнерные приложения.

> curl -L https://github.com/docker/compose/releases/download/1.5.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   601    0   601    0     0    190      0 --:--:--  0:00:03 --:--:--   190
100 4819k  100 4819k    0     0   123k      0  0:00:39  0:00:39 --:--:--  238k
> chmod +x /usr/local/bin/docker-compose
> docker-compose -v
docker-compose version: 1.5.0

Простой способ проверить это запустить Couchbase Cluster с тремя узлами :

couchbase-cluster > docker-compose up -d
Pulling couchbase1 (couchbase/server:latest)...
latest: Pulling from couchbase/server
c0de77b824d9: Pull complete
7f183271ade4: Pull complete
02cc7e934fcc: Pull complete
fd97fd3cdea7: Pull complete
c55759c6a761: Pull complete
2520930519cb: Pull complete
6597f338e656: Pull complete
7b49522b71f2: Pull complete
7789bd549668: Pull complete
63ff6eb12d29: Pull complete
1095332e719c: Pull complete
a64bcb125f74: Pull complete
13fe802e8814: Pull complete
d5c923126f19: Pull complete
39d4343f1a05: Pull complete
13d820fd06ce: Pull complete
Digest: sha256:0e983929897ae9bd396533ff7875f30027290c6acf164a66c967ca8884507381
Status: Downloaded newer image for couchbase/server:latest
Creating couchbasecluster_couchbase1_1
Creating couchbasecluster_couchbase3_1
Creating couchbasecluster_couchbase2_1

И список запущенных контейнеров:

couchbase-cluster > docker-compose ps
                 Name                                   Command                                   State                                    Ports                  
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
couchbasecluster_couchbase1_1            /entrypoint.sh couchbase-s ...           Up                                       11207/tcp, 11210/tcp, 11211/tcp,       
                                                                                                                           18091/tcp, 18092/tcp, 8091/tcp,        
                                                                                                                           8092/tcp, 8093/tcp                     
couchbasecluster_couchbase2_1            /entrypoint.sh couchbase-s ...           Up                                       11207/tcp, 11210/tcp, 11211/tcp,       
                                                                                                                           18091/tcp, 18092/tcp, 8091/tcp,        
                                                                                                                           8092/tcp, 8093/tcp                     
couchbasecluster_couchbase3_1            /entrypoint.sh couchbase-s ...           Up                                       11207/tcp, 0.0.0.0:11210->11210/tcp,   
                                                                                                                           11211/tcp, 18091/tcp, 18092/tcp,       
                                                                                                                           0.0.0.0:8091->8091/tcp,                
                                                                                                                           0.0.0.0:8092->8092/tcp,                
                                                                                                                           0.0.0.0:8093->8093/tcp

В следующем блоге будет показано, как использовать постоянные тома хранения  для хранения данных.

В настоящее время Docker Compose требует docker-compose.ymlот локальной файловой системы. Было бы полезно docker-composeиспользовать эти файлы из URI ( # 2313 ).

Docker Swarm 1.0.0

Docker Swarm предоставляет собственную кластеризацию для Docker. Он преобразует пул Docker Engines в один виртуальный движок. Инструменты, такие как Docker CLI, которые работают с одним движком, продолжают работать Swarm. Таким образом, ваши приложения, которые будут работать на одном Docker Engine, теперь могут легко выполняться на нескольких Docker Engine.

Логотип Docker Swarm

> docker pull swarm
Using default tag: latest
latest: Pulling from library/swarm
2bc79aec8ea0: Pull complete 
dc2fb86a875a: Pull complete 
435e648d0f23: Pull complete 
e16042a92d05: Pull complete 
045bd7b00b5b: Pull complete 
3caea1253d76: Pull complete 
2b4c55187a27: Pull complete 
6b40fe7724bd: Pull complete 
Digest: sha256:1ab748e67f00ee34d0bedcb306caede47c02dad3e0e03455d558448cadb079bc
Status: Downloaded newer image for swarm:latest

Подробнее о кластеризации с помощью Docker Swarm читайте подробнее о том, как настроить кластер.

Загрузите или обновите свои бинарные файлы до Docker 1.9 и используйте новейшие функции!

Docker Практическая мастерская и слайды

Практический семинар по Docker будет обновлен для использования Docker 1.9 в ближайшие дни, следите за обновлениями!

Последние слайды для ознакомления с Docker доступны по адресу  github.com/javaee-samples/docker-java/tree/master/slides .