Как обновить Docker на Fedora / CentOS

Docker — платформа с открытым исходным кодом для разработки и запуска приложений.

Docker v17.12 является последним стабильным выпуском на момент написания этой статьи.

Он обеспечивает возможность упаковки и запуска приложения в полностью изолированной среде, называемой контейнером.

Мы можем запускать много контейнеров одновременно на данном хосте.

Контейнеры легкие и быстрые, потому что им не нужен гипервизор, но они запускаются непосредственно в ядре хост-машины.

Архитектура докеров

Docker — это клиент-серверное приложение, в котором как клиент, так и демон можно запускать в одной системе или вы можете подключить клиент Docker к удаленному демону Docker.

Клиенты-докеры и демон сообщают через сокеты или API RESTful (State State Transfer Transfer — это передача без передачи состояния через HTTP веб-страницы, содержащей XML-файл, который включает и описывает желаемый контент).

Docker Daemon: демон Docker (dockerd) прослушивает запросы Docker API и управляет объектами Docker, такими как образы, контейнеры, сети и тома.

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

Клиент Docker: клиент Docker (докер) является основным способом взаимодействия пользователей с Docker.

Когда мы используем такие команды, как docker run, docker build и т. д., клиент отправляет эти команды демон docker (dockerd), который их выполняет.

Команда docker использует Docker API. Он может общаться с несколькими демонами.

Docker Registry (2.4.1): реестр Docker хранит изображения Docker. Docker Hub и Docker Cloud — это публичные реестры, которые каждый может использовать.

По умолчанию Docker настроен на поиск образов на Docker Hub.

Мы можем даже настроить собственный собственный регистратор для наших образов

В этой статье я расскажу, как вы можете обновить докер до последней доступной версии как для CentOS 7, так и для Fedora 27.

Предварительные условия


Чтобы установить версию Docker CE, нам нужна поддерживаемая версия CentOS 7.

Должен быть включен репозиторий centos-extras.

Этот репозиторий включен по умолчанию, но если вы его отключили, вам нужно снова включить его.

Обновление докера на CentOS 7.4

Для обновления Docker рекомендуется установить Docker Community Edition (Docker CE), который поможет вам установить, обновить и поддерживать Docker с поддержкой, необходимымой для вашей конкретной рабочей нагрузки.

Рекомендуется использовать драйвер хранилища overlay2. overlay2 — это выбор по умолчанию для Docker CE.

Драйвер хранилища управляет тем, как образы и контейнеры хранятся и управляются на хосте Docker.

Docker поддерживает несколько разных драйверов.

Devicemapper — это наш следующий выбор, но для повышения производительности он требует прямого lvm для производственных сред.

Начнем с шагов по обновлению старой версии Docker.

Удаление старой версии Docker

Пакеты docker и docker-engine являются старыми пакетами.

Если вы используете эти старые версии, вы должны сначала удалить их, чтобы продолжить.

Выполните эту команду, чтобы удалить все следы докеров с вашего сервера:

 # yum remove docker docker-common docker-selinux docker-engine 

В любом случае, эти пакеты удаляются с сервера,а  все наше необходимое содержимое докеров, включая образы, контейнеры, тома и сети, сохраняются в папке /var/lib/docker/.

Установка Docker CE

Вы можете сначала установить Docker-репозитории и установить их с помощью этого метода.

Это упростит процесс установки и обновления с помощью одного и того же репозитория.

Для настройки нашего репозитория нам нужна утилита yum-config-manager, которая предоставляется пакетом yum-utils.

И, как обсуждалось ранее, Docker CE предпочитает драйвер для хранения, здесь мы используем devicemapper.

Следовательно, для этого драйвера хранения нам нужны пакеты device-mapper-persistent-data и lvm2.

Мы можем установить все эти предварительные условия для настройки нашего репозитория с помощью этой команды.

 # yum install -y yum-utils device-mapper-persistent-data lvm2 

Затем вы можете использовать следующую команду, чтобы включить стабильный репозиторий Docker:

 # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum install docker-ce
Loaded plugins: fastestmirror
docker-ce-stable | 2.9 kB 00:00:00
Loading mirror speeds from cached hostfile
* base: mirrors.coreix.net
* extras: repo.uk.bigstepcloud.com
* updates: mirror.sov.uk.goscomb.net
Resolving Dependencies
--> Running transaction check
---> Package docker-ce.x86_64 0:17.12.0.ce-1.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Installing:
docker-ce x86_64 17.12.0.ce-1.el7.centos docker-ce-stable 30 M

Transaction Summary
============================================================================================================================================================================================================
Install 1 Package 

Этот шаг не является обязательным: репозитории Edge и test также включены в этот файл репо, он по умолчанию отключен.

Если вы хотите, вы можете включить эти файлы вместе со стабильным репозиторием и установить доступные версии Edge или Test.

Это можно сделать, выполнив следующую команду:

 # yum-config-manager --enable docker-ce-edge
# yum-config-manager --enable docker-ce-test 

После включения этих репозиториев команда установки приведет к установке из Edge Repo.

 # yum install docker-ce
Dependencies Resolved

============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Installing:
docker-ce x86_64 18.01.0.ce-1.el7.centos docker-ce-edge 33 M
Installing for dependencies:
libtool-ltdl x86_64 2.4.2-22.el7_3 base 49 k

Transaction Summary
============================================================================================================================================================================================================
Install 1 Package (+1 Dependent package) 

Поэтому, если вам нужна последняя версия Stable, вы можете просто отключить эти репозитории Edge и Test.

Вы можете использовать команду yum-config-manager с флагом -disable для отключения этих репозиториев.

Время от времени на сервере могут быть еще некоторые следы старых компонентов докеров, даже если мы выполнили команду yum remove, как в шаге 1.

Во время установки, если есть какие-либо старые версии докеров, она сообщит об ошибке, как показано ниже:

Transaction check error:
file /usr/bin/docker from install of docker-ce-18.01.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd from install of docker-ce-18.01.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd-shim from install of docker-ce-18.01.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/dockerd from install of docker-ce-18.01.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

Я вручную удалил эти пакеты с помощью команды yum remove, чтобы продолжить установку, как показано ниже:

 # yum remove docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
Dependencies Resolved

============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Removing:
docker-common x86_64 2:1.12.6-68.gitec8512b.el7.centos @extras 4.5 k
Removing for dependencies:
docker-client x86_64 2:1.12.6-68.gitec8512b.el7.centos @extras 11 M

Transaction Summary
============================================================================================================================================================================================================
Remove 1 Package (+1 Dependent package) 

Проверка установки Docker

Как только установка завершена, вы можете запустить и включить службу докеров и проверить установку, запустив образ hello-world.

 # systemctl start docker
# systemctl enable docker
# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2018-01-23 06:36:24 UTC; 2s ago
Docs: https://docs.docker.com
Main PID: 30700 (dockerd)
Memory: 23.1M
CGroup: /system.slice/docker.service
├─30700 /usr/bin/dockerd
└─30703 docker-containerd --config /var/run/docker/containerd/containerd.toml

# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:66ef312bbac49c39a89aa9bcc3cb4f3c9e7de3788c944158df3ee0176d32b751
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/ 

Обновление Docker CE

Вы можете использовать команду обновления yum для обновления версии Docker до последней стабильной версии в будущем.

В настоящее время наш сервер уже установлен с последней версией Stable Docker, которая является версией Docker 17.12.

 # docker -v
Docker version 17.12.0-ce, build c97c6d6 

Теперь, если нам нужно обновить текущую стабильную версию до последней доступной версии Edge, вы можете просто включить файл в репозитории Docker и запустить команду обновления yum, как показано ниже:


# yum-config-manager --enable docker-ce-edge
# yum upgrade docker-ce
Dependencies Resolved

============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Updating:
docker-ce x86_64 18.01.0.ce-1.el7.centos docker-ce-edge 33 M

Transaction Summary
============================================================================================================================================================================================================
Upgrade 1 Package 

Это действие установит последнюю версию Edge, доступную из репозитория.

После установки вы можете подтвердить версию Docker.

Пожалуйста, обратитесь к этой документации, чтобы узнать больше о выпусках Stable и Edge.

 # docker -v
Docker version 18.01.0-ce, build 03596f5 

Обновление Docker на Fedora 27

Поскольку Fedora и CentOS являются «детьми» RedHat, используемые команды в значительной степени идентичны, за исключением различий в пакете Docker.

Как и в предыдущем случае, в Fedora нам также нужно удалить старые версии докеров и установить Docker Community Edition (Docker CE) для упрощения установки и обновления.

Предварительные условия

Для установки Docker вам понадобится 64-разрядная версия последней версии Fedora 27

Давайте начнем с шагов по обновлению старой версии Docker на Fedora.

Удалить старую версию Docker

Как обсуждалось ранее, пакеты docker и docker-engine являются старыми пакетами.

Вы можете удалить эти старые пакеты с помощью следующей команды:

 # dnf remove docker docker-common docker-selinux docker-engine-selinux docker-engine 

Эти пакеты удаляются с сервера, все наше необходимое содержимое докеров, включая образы, контейнеры, тома и сети, сохраняются в папке /var/lib/docker/.

Установка Docker CE

Нам нужно включить репозиторий Docker для Fedora для установки версии Docker CE.

Чтобы настроить этот репозиторий, нам нужны некоторые команды для управления диспетчером пакетов dnf.

Пакет dnf-plugins-core предоставляет команды для управления репозиториями DNF из командной строки.

Вы можете установить его, используя следующую команду:

 # dnf -y install dnf-plugins-core 

Теперь мы можем использовать эту команду, чтобы включить стабильный репозиторий и установить последнюю версию Stable, доступную из этого репозитория, с помощью команды установки dnf.

 # dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Adding repo from: https://download.docker.com/linux/fedora/docker-ce.repo

# dnf install docker-ce
Last metadata expiration check: 0:00:20 ago on Mon 22 Jan 2018 09:43:35 AM UTC.
Dependencies resolved.
============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Installing:
docker-ce x86_64 17.12.0.ce-1.fc27 docker-ce-stable 31 M
Installing dependencies:
container-selinux noarch 2:2.38-1.fc27 updates 36 k
iptables x86_64 1.6.1-4.fc27 fedora 471 k
libnetfilter_conntrack x86_64 1.0.6-4.fc27 fedora 62 k
libnfnetlink x86_64 1.0.1-11.fc27 fedora 31 k
policycoreutils-python-utils x86_64 2.7-1.fc27 fedora 223 k

Transaction Summary
============================================================================================================================================================================================================
Install 6 Packages 

Как указывалось ранее, в репозитории Docker Repository (файл docker.repo) присутствуют файлы Edge и Test repo.

Но оба они по умолчанию отключены, чтобы включить уровень «Stable».

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

 # dnf config-manager --set-enabled docker-ce-edge
# dnf config-manager --set-enabled docker-ce-test 

Обновление Docker CE

Чтобы обновить Docker CE, вы можете использовать dnf -y upgrade.

Это позволит перейти на последнюю стабильную версию, доступную в репозитории Docker.

 # dnf -y upgrade docker-ce 

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *