Выпущен Docker 1.7.0 ( журнал изменений ), и поэтому пришло время обновить Docker Hosts, CLI и другие инструменты.
Докер 1.7.0
Docker Host работает внутри Docker Machine, поэтому его необходимо обновить. Машина должна быть остановлена, иначе вы получите сообщение об ошибке:
1
|
Error: machine must be running to upgrade. |
Итак, запустите машину как:
1
2
|
>docker-machine start mymachine Starting VM... |
А затем обновить машину как:
1
2
3
4
5
6
|
> docker-machine upgrade mymachine Stopping machine to do the upgrade... Upgrading machine mymachine... Downloading https: //github.com/boot2docker/boot2docker/releases/download/v1.7.0/boot2docker.iso to /Users/arungupta/.docker/machine/cache/boot2docker.iso... Starting machine back up... Starting VM... |
Машина в любом случае останавливается для выполнения обновления, и поэтому необходимость запуска машины кажется излишней ( # 1399 ).
Обновление хоста обновляет .docker/machine/cache/boot2docker.iso
. Все ранее созданные машины кэшируют boot2docker.iso
в .docker/machine/machines/<MACHINE-NAME>
и поэтому они продолжат загрузку, используя ту же версию.
Докер CLI
Обновите интерфейс командной строки Docker как:
1
|
curl https: //get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker |
Теперь docker version
показывает следующий вывод:
01
02
03
04
05
06
07
08
09
10
11
|
> docker version Client version: 1.7 . 0 Client API version: 1.19 Go version (client): go1. 4.2 Git commit (client): 0baf609 OS/Arch (client): darwin/amd64 Server version: 1.7 . 0 Server API version: 1.19 Go version (server): go1. 4.2 Git commit (server): 0baf609 OS/Arch (server): linux/amd64 |
Обратите внимание, что здесь показана версия API клиента (1.7.0) и версия API сервера (1.7.0).
Если вы обновите только CLI, а не Docker Host, появится следующее сообщение об ошибке:
1
|
Error response from daemon: client and server don't have same version (client : 1.19 , server: 1.18 ) |
Это сообщение об ошибке показывает несоответствие версий между клиентским CLI и хостом Docker, работающим на компьютере. Обычно это происходит, если активная машина была создана несколько дней назад с использованием более старого boot2docker.iso
. Кажется, нет никакого прямого способа узнать точную версию, которая используется в настоящее время ( # 1398 ).
Кажется, что у нового клиента нет возможности общаться со старым сервером ( # 14077 ), и поэтому необходимо обновить хост. Есть предложение переопределить версию API клиента ( # 11486 ), но на данный момент нет ETA для исправления. Таким образом, единственный вариант — обновить докер, который затем обновится до последней версии Docker.
Таким образом, обновление CLI также требует обновления машины.
Вот параметры, поддерживаемые Docker CLI:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
> docker --help Usage: docker [OPTIONS] COMMAND [arg...] A self-sufficient runtime for linux containers. Options: -D, --debug= false Enable debug mode -d, --daemon= false Enable daemon mode -H, --host=[] Daemon socket(s) to connect to -h, --help= false Print usage -l, --log-level=info Set the logging level --tls= false Use TLS; implied by --tlsverify --tlscacert=~/.docker/machine/machines/microservices/ca.pem Trust certs signed only by this CA --tlscert=~/.docker/machine/machines/microservices/cert.pem Path to TLS certificate file --tlskey=~/.docker/machine/machines/microservices/key.pem Path to TLS key file --tlsverify= true Use TLS and verify the remote -v, --version= false Print version information and quit Commands: attach Attach to a running container build Build an image from a Dockerfile commit Create a new image from a container's changes cp Copy files/folders from a container's filesystem to the host path create Create a new container diff Inspect changes on a container's filesystem events Get real time events from the server exec Run a command in a running container export Stream the contents of a container as a tar archive history Show the history of an image images List images import Create a new filesystem image from the contents of a tarball info Display system-wide information inspect Return low-level information on a container or image kill Kill a running container load Load an image from a tar archive login Register or log in to a Docker registry server logout Log out from a Docker registry server logs Fetch the logs of a container pause Pause all processes within a container port Lookup the public -facing port that is NAT-ed to PRIVATE_PORT ps List containers pull Pull an image or a repository from a Docker registry server push Push an image or a repository to a Docker registry server rename Rename an existing container restart Restart a running container rm Remove one or more containers rmi Remove one or more images run Run a command in a new container save Save an image to a tar archive search Search for an image on the Docker Hub start Start a stopped container stats Display a stream of a containers' resource usage statistics stop Stop a running container tag Tag an image into a repository top Lookup the running processes of a container unpause Unpause a paused container version Show the Docker version information wait Block until a container stops, then print its exit code Run 'docker COMMAND --help' for more information on a command. machines> docker events --help Usage: docker events [OPTIONS] Get real time events from the server -f, --filter=[] Filter output based on conditions provided --help= false Print usage --since= Show all events created since timestamp --until= Stream events until this timestamp |
Docker Machine 0.3.0
Это было довольно просто:
1
|
curl -L https: //github.com/docker/machine/releases/download/v0.3.0/docker-machine_darwin-amd64 > /usr/local/bin/docker-machine |
Появилось множество новых функций , в том числе экспериментальный поставщик Red Hat Enterprise Linux 7.0.
Версия отображается как:
1
2
|
> docker-machine --version docker-machine version 0.3 . 0 (0a251fe) |
Полный список команд:
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
41
42
|
> docker-machine --help Usage: docker-machine [OPTIONS] COMMAND [arg...] Create and manage machines running Docker. Version: 0.3 . 0 (0a251fe) Author: Docker Machine Contributors - <https: //github.com/docker/machine> Options: --debug, -D Enable debug mode -s, --storage-path "/Users/arungupta/.docker/machine" Configures storage path [$MACHINE_STORAGE_PATH] --tls-ca-cert CA to verify remotes against [$MACHINE_TLS_CA_CERT] --tls-ca-key Private key to generate certificates [$MACHINE_TLS_CA_KEY] --tls-client-cert Client cert to use for TLS [$MACHINE_TLS_CLIENT_CERT] --tls-client-key Private key used in client TLS auth [$MACHINE_TLS_CLIENT_KEY] -- native -ssh Use the native (Go-based) SSH implementation. [$MACHINE_NATIVE_SSH] --help, -h show help --version, -v print the version Commands: active Print which machine is active config Print the connection config for machine create Create a machine env Display the commands to set up the environment for the Docker client inspect Inspect information about a machine ip Get the IP address of a machine kill Kill a machine ls List machines regenerate-certs Regenerate TLS Certificates for a machine restart Restart a machine rm Remove a machine ssh Log into or run a command on a machine with SSH. scp Copy files between machines 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 Run 'docker-machine COMMAND --help' for more information on a command. |
Docker Compose 1.3.0
Docker Compose может быть обновлен до 1.3.0 как:
1
2
|
curl -L https: //github.com/docker/compose/releases/download/1.3.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose |
Версия отображается как:
1
2
3
4
|
> docker-compose --version docker-compose version: 1.3 . 0 CPython version: 2.7 . 9 OpenSSL version: OpenSSL 1.0 .1j 15 Oct 2014 |
Следует отметить два важных момента:
- Требуется как минимум Docker 1.6.0
- По сравнению с Compose 1.2 произошли серьезные изменения, поэтому вам нужно либо удалить и заново создать ваши контейнеры, либо перенести их. К счастью,
docker-compose migrate-to-labels
tags можно использовать для переноса контейнеров до Compose 1.3.0 в последний формат. Это создаст заново контейнеры с добавленными метками.
Узнайте больше в Docker Compose to Orchestrate Containers .
Docker Swarm 0.3.0
Начиная с этого блога, доступен Docker Swarm 0.3.0 RC3. Кластеризация с использованием Docker Swarm представляет собой хорошее введение в Docker Swarm и может быть использована для начала работы с последней версией Docker Swarm.
Начиная с 0.2.0 исправлено 34 проблемы , но в уведомлениях о фиксации начиная с 0.2.0 f или Release Candidates, по-видимому, нет значительных изменений.
Более подробные блоги по каждому компоненту Docker будут публиковаться в последующих блогах.
Наслаждайтесь!
Ссылка: | Docker 1.7.0, Docker Machine 0.3.0, Docker Compose 1.3.0, Docker Swarm 0.3.0 от нашего партнера по JCG Аруна Гупта в блоге Miles to go 2.0… . |