Установка Docker на Oracle Linux

Установка Docker на Oracle Linux

Контейнеризация – это упрошенная форма виртуализации на уровне операционной системы. В данном посте описано понятие виртуализации.  Контейнеризация позволяет запускать приложение в изолированной области, называемой контейнером. Каждый контейнер содержит все необходимые компоненты для запуска приложения. Контейнер представляет собой исполняемый пакет программного обеспечения, работающий поверх операционной системы. Одним из наиболее популярных инструментов управления виртуальными контейнерами является Docker. Он решает множество задач, связанных с созданием контейнеров, размещением в них приложений, управлением процессами, а также тестированием программного обеспечения и его отдельных компонентов.

Далее рассматривается установка Docker в среде Linux (дистрибутив Oracle Linux 7). Для этого, необходимо выполнить следующие шаги:

1. Настроить открытый консольный менеджер пакетов yum в дистрибутиве Oracle Linux.

Необходимо включить репозитории ol7_latest, ol7_uekr4, ol7_optional_latest и ol7_addons. Для этого надо в директорию /etc/yum.repos.d/ скачать файл репозитория public-yum-ol7.repo. Делается это следующими командами под пользователем root (операционная система должна иметь доступ к интернету):

[root@dushanbe ~]# cd /etc/yum.repos.d/
[root@dushanbe yum.repos.d]# 
[root@dushanbe yum.repos.d]# wget http://yum.oracle.com/public-yum-ol7.repo
--2021-04-13 10:20:25--  http://yum.oracle.com/public-yum-ol7.repo
Resolving yum.oracle.com (yum.oracle.com)… 184.86.49.9
Connecting to yum.oracle.com (yum.oracle.com)|184.86.49.9|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 16402 (16K) [text/plain]

Saving to: ‘public-yum-ol7.repo.1’
100%[=============================================>] 16,402      22.1KB/s   in 0.7s   
2021-04-13 10:20:32 (22.1 KB/s) - ‘public-yum-ol7.repo.1’ saved [16402/16402]
[root@dushanbe yum.repos.d]#

Хотелось бы коротко написать, что репозитории это сервера в интернете или в локальной сети, которые настроены для хранения и предоставления доступа к файлам пакетов приложений Linux. Другими словами, пользователи из репозиторий могут скачать или обновить свои приложения для Linux.

Проверяется файл public-yum-ol7.repo на наличие блоков ol7_latest, ol7_uekr4, ol7_optional_latest и ol7_addons. В случае отсутствия, необходимо добавить нижеследующие строки в файл public-yum-ol7.repo. Надо убедиться, что значение для параметра enabled равняется 1.

[root@dushanbe yum.repos.d]# ls -l
total 28
-rw-r--r--. 1 root root  6282 Aug  2  2017 public-yum-ol7.repo
-rw-r--r--. 1 root root 16402 Aug 26  2019 public-yum-ol7.repo.1
[root@dushanbe yum.repos.d]# vi public-yum-ol7.repo
[ol7_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[ol7_UEKR4]
name=Latest Unbreakable Enterprise Kernel Release 4 for Oracle Linux $releasever ($basearch)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/UEKR4/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[ol7_optional_latest]
name=Oracle Linux $releasever Optional Latest ($basearch)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/optional/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[ol7_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

После того, как репозитории настроены, необходимо перезагрузить операционную систему.

2. Запускается установка docker под пользователем root.

[root@dushanbe ~]# yum install docker-engine
Loaded plugins: langpacks, ulninfo
ol7_UEKR4                                                       | 2.5 kB  00:00:00     
ol7_addons                                                      | 2.5 kB  00:00:00     
ol7_latest                                                      | 2.7 kB  00:00:00     
ol7_optional_latest                                             | 2.5 kB  00:00:00     
(1/4): ol7_addons/x86_64/primary_db                             | 171 kB  00:00:05     
(2/4): ol7_addons/x86_64/updateinfo                             |  95 kB  00:00:09     
(3/4): ol7_optional_latest/x86_64/updateinfo                    | 1.2 MB  00:00:16     
(4/4): ol7_optional_latest/x86_64/primary_db                    | 5.9 MB  00:00:31     
Resolving Dependencies
--> Running transaction check
---> Package docker-engine.x86_64 0:19.03.11.ol-8.el7 will be installed
--> Processing Dependency: container-selinux >= 2:2.77 for package: docker-engine-19.03.11.ol-8.el7.x86_64
--> Processing Dependency: containerd for package: docker-engine-19.03.11.ol-8.el7.x86_64
--> Processing Dependency: runc for package: docker-engine-19.03.11.ol-8.el7.x86_64
--> Processing Dependency: docker-cli for package: docker-engine-19.03.11.ol-8.el7.x86_64
--> Running transaction check
---> Package container-selinux.noarch 2:2.107-3.el7 will be installed
--> Processing Dependency: selinux-policy-base >= 3.13.1-216.el7 for package: 2:container-selinux-2.107-3.el7.noarch
--> Processing Dependency: selinux-policy >= 3.13.1-216.el7 for package: 2:container-selinux-2.107-3.el7.noarch
--> Processing Dependency: selinux-policy-targeted >= 3.13.1-216.el7 for package: 2:container-selinux-2.107-3.el7.noarch
---> Package containerd.x86_64 0:1.3.9-2.el7 will be installed
---> Package docker-cli.x86_64 0:19.03.11.ol-8.el7 will be installed
---> Package runc.x86_64 0:1.0.0-93.rc93.el7 will be installed
--> Processing Dependency: criu for package: runc-1.0.0-93.rc93.el7.x86_64
--> Running transaction check
---> Package criu.x86_64 0:3.12-2.el7 will be installed
--> Processing Dependency: libprotobuf-c.so.1(LIBPROTOBUF_C_1.0.0)(64bit) for package: criu-3.12-2.el7.x86_64
--> Processing Dependency: libnet.so.1()(64bit) for package: criu-3.12-2.el7.x86_64
--> Processing Dependency: libprotobuf-c.so.1()(64bit) for package: criu-3.12-2.el7.x86_64
---> Package selinux-policy.noarch 0:3.13.1-166.0.2.el7 will be updated
---> Package selinux-policy.noarch 0:3.13.1-268.0.1.el7_9.2 will be an update
--> Processing Dependency: policycoreutils >= 2.5-24 for package: selinux-policy-3.13.1-268.0.1.el7_9.2.noarch
--> Processing Dependency: libsemanage >= 2.5-13 for package: selinux-policy-3.13.1-268.0.1.el7_9.2.noarch
---> Package selinux-policy-targeted.noarch 0:3.13.1-166.0.2.el7 will be updated
---> Package selinux-policy-targeted.noarch 0:3.13.1-268.0.1.el7_9.2 will be an update
--> Running transaction check
---> Package libnet.x86_64 0:1.1.6-7.el7 will be installed
---> Package libsemanage.x86_64 0:2.5-8.el7 will be updated
--> Processing Dependency: libsemanage = 2.5-8.el7 for package: libsemanage-python-2.5-8.el7.x86_64
---> Package libsemanage.x86_64 0:2.5-14.el7 will be an update
--> Processing Dependency: libselinux >= 2.5-14 for package: libsemanage-2.5-14.el7.x86_64
--> Processing Dependency: libsepol >= 2.5-10 for package: libsemanage-2.5-14.el7.x86_64
---> Package policycoreutils.x86_64 0:2.5-17.1.0.1.el7 will be updated
--> Processing Dependency: policycoreutils = 2.5-17.1.0.1.el7 for package: policycoreutils-python-2.5-17.1.0.1.el7.x86_64
---> Package policycoreutils.x86_64 0:2.5-34.0.1.el7 will be an update
--> Processing Dependency: libselinux-utils >= 2.5-14 for package: policycoreutils-2.5-34.0.1.el7.x86_64
---> Package protobuf-c.x86_64 0:1.0.2-3.el7 will be installed
--> Running transaction check
---> Package libselinux.x86_64 0:2.5-11.el7 will be updated
--> Processing Dependency: libselinux(x86-64) = 2.5-11.el7 for package: libselinux-python-2.5-11.el7.x86_64
---> Package libselinux.x86_64 0:2.5-15.el7 will be an update
---> Package libselinux-utils.x86_64 0:2.5-11.el7 will be updated
---> Package libselinux-utils.x86_64 0:2.5-15.el7 will be an update
---> Package libsemanage-python.x86_64 0:2.5-8.el7 will be updated
---> Package libsemanage-python.x86_64 0:2.5-14.el7 will be an update
---> Package libsepol.x86_64 0:2.5-6.el7 will be updated
---> Package libsepol.x86_64 0:2.5-10.el7 will be an update
---> Package policycoreutils-python.x86_64 0:2.5-17.1.0.1.el7 will be updated
---> Package policycoreutils-python.x86_64 0:2.5-34.0.1.el7 will be an update
--> Processing Dependency: setools-libs >= 3.3.8-4 for package: policycoreutils-python-2.5-34.0.1.el7.x86_64
--> Running transaction check
---> Package libselinux-python.x86_64 0:2.5-11.el7 will be updated
---> Package libselinux-python.x86_64 0:2.5-15.el7 will be an update
---> Package setools-libs.x86_64 0:3.3.8-1.1.el7 will be updated
---> Package setools-libs.x86_64 0:3.3.8-4.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved
=======================================================================================
 Package                    Arch      Version                      Repository     Size
Installing:
 docker-engine              x86_64    19.03.11.ol-8.el7            ol7_addons     21 M
Installing for dependencies:
 container-selinux          noarch    2:2.107-3.el7                ol7_addons     39 k
 containerd                 x86_64    1.3.9-2.el7                  ol7_addons     27 M
 criu                       x86_64    3.12-2.el7                   ol7_latest    452 k
 docker-cli                 x86_64    19.03.11.ol-8.el7            ol7_addons     34 M
 libnet                     x86_64    1.1.6-7.el7                  ol7_latest     57 k
 protobuf-c                 x86_64    1.0.2-3.el7                  ol7_latest     27 k
 runc                       x86_64    1.0.0-93.rc93.el7            ol7_addons    3.7 M
Updating for dependencies:
 libselinux                 x86_64    2.5-15.el7                   ol7_latest    162 k
 libselinux-python          x86_64    2.5-15.el7                   ol7_latest    235 k
 libselinux-utils           x86_64    2.5-15.el7                   ol7_latest    151 k
 libsemanage                x86_64    2.5-14.el7                   ol7_latest    150 k
 libsemanage-python         x86_64    2.5-14.el7                   ol7_latest    112 k
 libsepol                   x86_64    2.5-10.el7                   ol7_latest    297 k
 policycoreutils            x86_64    2.5-34.0.1.el7               ol7_latest    916 k
 policycoreutils-python     x86_64    2.5-34.0.1.el7               ol7_latest    457 k
 selinux-policy             noarch    3.13.1-268.0.1.el7_9.2       ol7_latest    498 k
 selinux-policy-targeted    noarch    3.13.1-268.0.1.el7_9.2       ol7_latest    7.2 M
 setools-libs               x86_64    3.3.8-4.el7                  ol7_latest    620 k

Transaction Summary
=======================================================================================
Install  1 Package  (+ 7 Dependent packages)
Upgrade             ( 11 Dependent packages)

Total download size: 98 M

Is this ok [y/d/N]:

Здесь надо подтвердить установку и обновление путем нажатия y

Is this ok [y/d/N]: y
Downloading packages:
No Presto metadata available for ol7_latest
warning: /var/cache/yum/x86_64/7Server/ol7_addons/packages/container-selinux-2.107-3.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Public key for container-selinux-2.107-3.el7.noarch.rpm is not installed
(1/19): container-selinux-2.107-3.el7.noarch.rpm                |  39 kB  00:00:02     
Public key for criu-3.12-2.el7.x86_64.rpm is not installed kB/s | 832 kB  00:06:47 ETA 
(2/19): criu-3.12-2.el7.x86_64.rpm                              | 452 kB  00:00:05     
(3/19): containerd-1.3.9-2.el7.x86_64.rpm                       |  27 MB  00:04:10     
(4/19): libselinux-2.5-15.el7.x86_64.rpm                        | 162 kB  00:00:03     
(5/19): libnet-1.1.6-7.el7.x86_64.rpm                           |  57 kB  00:00:07     
(6/19): libselinux-python-2.5-15.el7.x86_64.rpm                 | 235 kB  00:00:05     
(7/19): libselinux-utils-2.5-15.el7.x86_64.rpm                  | 151 kB  00:00:03     
(8/19): libsemanage-python-2.5-14.el7.x86_64.rpm                | 112 kB  00:00:01     
(9/19): libsemanage-2.5-14.el7.x86_64.rpm                       | 150 kB  00:00:05     
(10/19): libsepol-2.5-10.el7.x86_64.rpm                         | 297 kB  00:00:06     
(11/19): policycoreutils-python-2.5-34.0.1.el7.x86_64.rpm       | 457 kB  00:00:10     
(12/19): protobuf-c-1.0.2-3.el7.x86_64.rpm                      |  27 kB  00:00:02     
(13/19): policycoreutils-2.5-34.0.1.el7.x86_64.rpm              | 916 kB  00:00:21     
(14/19): docker-cli-19.03.11.ol-8.el7.x86_64.rpm                |  34 MB  00:06:17     
(15/19): selinux-policy-3.13.1-268.0.1.el7_9.2.noarch.rpm       | 498 kB  00:00:16     
(16/19): setools-libs-3.3.8-4.el7.x86_64.rpm                    | 620 kB  00:00:11     
(17/19): runc-1.0.0-93.rc93.el7.x86_64.rpm                      | 3.7 MB  00:00:53     
(18/19): docker-engine-19.03.11.ol-8.el7.x86_64.rpm             |  21 MB  00:03:32     
(19/19): selinux-policy-targeted-3.13.1-268.0.1.el7_9.2.noarch. | 7.2 MB  00:01:30
---------------------------------------------------------------------------     
Total                                                     212 kB/s |  98 MB  07:50     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
Importing GPG key 0xEC551F03:
 Userid     : "Oracle OSS group (Open Source Software group) build@oss.oracle.com"
 Fingerprint: 4214 4123 fecf c55b 9086 313d 72f9 7b74 ec55 1f03
 Package    : 7:oraclelinux-release-7.4-1.0.4.el7.x86_64 (@anaconda/7.4)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

Is this ok [y/N]:

Для установки необходимо нажатие y

Is this ok [y/N]: y

Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Updating   : libsepol-2.5-10.el7.x86_64                                         1/30 
  Updating   : libselinux-2.5-15.el7.x86_64                                       2/30 
  Updating   : libsemanage-2.5-14.el7.x86_64                                      3/30 
  Updating   : libselinux-utils-2.5-15.el7.x86_64                                 4/30 
  Updating   : policycoreutils-2.5-34.0.1.el7.x86_64                              5/30 
  Updating   : selinux-policy-3.13.1-268.0.1.el7_9.2.noarch                       6/30 
  Updating   : selinux-policy-targeted-3.13.1-268.0.1.el7_9.2.noarch              7/30 
  Updating   : libsemanage-python-2.5-14.el7.x86_64                               8/30 
  Updating   : setools-libs-3.3.8-4.el7.x86_64                                    9/30 
  Updating   : libselinux-python-2.5-15.el7.x86_64                               10/30 
  Updating   : policycoreutils-python-2.5-34.0.1.el7.x86_64                      11/30 
  Installing : 2:container-selinux-2.107-3.el7.noarch                            12/30 
  Installing : containerd-1.3.9-2.el7.x86_64                                     13/30 
  Installing : libnet-1.1.6-7.el7.x86_64                                         14/30 
  Installing : protobuf-c-1.0.2-3.el7.x86_64                                     15/30 
  Installing : criu-3.12-2.el7.x86_64                                            16/30 
  Installing : runc-1.0.0-93.rc93.el7.x86_64                                     17/30 
  Installing : docker-cli-19.03.11.ol-8.el7.x86_64                               18/30 
  Installing : docker-engine-19.03.11.ol-8.el7.x86_64                            19/30 
  Cleanup    : policycoreutils-python-2.5-17.1.0.1.el7.x86_64                    20/30 
  Cleanup    : selinux-policy-targeted-3.13.1-166.0.2.el7.noarch                 21/30 
  Cleanup    : selinux-policy-3.13.1-166.0.2.el7.noarch                          22/30 
  Cleanup    : policycoreutils-2.5-17.1.0.1.el7.x86_64                           23/30 
  Cleanup    : libselinux-utils-2.5-11.el7.x86_64                                24/30 
  Cleanup    : setools-libs-3.3.8-1.1.el7.x86_64                                 25/30 
  Cleanup    : libselinux-python-2.5-11.el7.x86_64                               26/30 
  Cleanup    : libsemanage-python-2.5-8.el7.x86_64                               27/30 
  Cleanup    : libsemanage-2.5-8.el7.x86_64                                      28/30 
  Cleanup    : libselinux-2.5-11.el7.x86_64                                      29/30 
  Cleanup    : libsepol-2.5-6.el7.x86_64                                         30/30 
  Verifying  : docker-cli-19.03.11.ol-8.el7.x86_64                                1/30 
  Verifying  : libselinux-2.5-15.el7.x86_64                                       2/30 
  Verifying  : 2:container-selinux-2.107-3.el7.noarch                             3/30 
  Verifying  : policycoreutils-2.5-34.0.1.el7.x86_64                              4/30 
  Verifying  : selinux-policy-3.13.1-268.0.1.el7_9.2.noarch                       5/30 
  Verifying  : policycoreutils-python-2.5-34.0.1.el7.x86_64                       6/30 
  Verifying  : docker-engine-19.03.11.ol-8.el7.x86_64                             7/30 
  Verifying  : libselinux-utils-2.5-15.el7.x86_64                                 8/30 
  Verifying  : setools-libs-3.3.8-4.el7.x86_64                                    9/30 
  Verifying  : protobuf-c-1.0.2-3.el7.x86_64                                     10/30 
  Verifying  : libsemanage-python-2.5-14.el7.x86_64                              11/30 
  Verifying  : libsemanage-2.5-14.el7.x86_64                                     12/30 
  Verifying  : libselinux-python-2.5-15.el7.x86_64                               13/30 
  Verifying  : libsepol-2.5-10.el7.x86_64                                        14/30 
  Verifying  : criu-3.12-2.el7.x86_64                                            15/30 
  Verifying  : libnet-1.1.6-7.el7.x86_64                                         16/30 
  Verifying  : selinux-policy-targeted-3.13.1-268.0.1.el7_9.2.noarch             17/30 
  Verifying  : containerd-1.3.9-2.el7.x86_64                                     18/30 
  Verifying  : runc-1.0.0-93.rc93.el7.x86_64                                     19/30 
  Verifying  : policycoreutils-python-2.5-17.1.0.1.el7.x86_64                    20/30 
  Verifying  : libselinux-2.5-11.el7.x86_64                                      21/30 
  Verifying  : libsepol-2.5-6.el7.x86_64                                         22/30 
  Verifying  : libselinux-utils-2.5-11.el7.x86_64                                23/30 
  Verifying  : policycoreutils-2.5-17.1.0.1.el7.x86_64                           24/30 
  Verifying  : libselinux-python-2.5-11.el7.x86_64                               25/30 
  Verifying  : libsemanage-python-2.5-8.el7.x86_64                               26/30 
  Verifying  : libsemanage-2.5-8.el7.x86_64                                      27/30 
  Verifying  : selinux-policy-targeted-3.13.1-166.0.2.el7.noarch                 28/30 
  Verifying  : selinux-policy-3.13.1-166.0.2.el7.noarch                          29/30 
  Verifying  : setools-libs-3.3.8-1.1.el7.x86_64                                 30/30 

Installed:
  docker-engine.x86_64 0:19.03.11.ol-8.el7                                             

Dependency Installed:
  container-selinux.noarch 2:2.107-3.el7     containerd.x86_64 0:1.3.9-2.el7          
  criu.x86_64 0:3.12-2.el7                   docker-cli.x86_64 0:19.03.11.ol-8.el7    
  libnet.x86_64 0:1.1.6-7.el7                protobuf-c.x86_64 0:1.0.2-3.el7          
  runc.x86_64 0:1.0.0-93.rc93.el7           

Dependency Updated:
  libselinux.x86_64 0:2.5-15.el7                                                       
  libselinux-python.x86_64 0:2.5-15.el7                                                
  libselinux-utils.x86_64 0:2.5-15.el7                                                 
  libsemanage.x86_64 0:2.5-14.el7                                                      
  libsemanage-python.x86_64 0:2.5-14.el7                                               
  libsepol.x86_64 0:2.5-10.el7                                                         
  policycoreutils.x86_64 0:2.5-34.0.1.el7                                              
  policycoreutils-python.x86_64 0:2.5-34.0.1.el7                                       
  selinux-policy.noarch 0:3.13.1-268.0.1.el7_9.2                                       
  selinux-policy-targeted.noarch 0:3.13.1-268.0.1.el7_9.2                              
  setools-libs.x86_64 0:3.3.8-4.el7                                                    

Complete!
[root@dushanbe ~]#

Лог установки показывает, что установка Docker успешно завершена (Complete!).

3. После успешного завершения установки надо запустить сервис docker.

[root@dushanbe ~]# systemctl start docker
[root@dushanbe ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@dushanbe ~]# 
[root@dushanbe ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-04-13 11:01:02 +05; 52s ago
     Docs: https://docs.docker.com
 Main PID: 5592 (dockerd)
   CGroup: /system.slice/docker.service
           └─5592 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd….
Apr 13 11:01:01 dushanbe.localdomain dockerd[5592]: time="2021-04-13T11:01:01.0266…c
Apr 13 11:01:01 dushanbe.localdomain dockerd[5592]: time="2021-04-13T11:01:01.0935…"
Apr 13 11:01:01 dushanbe.localdomain dockerd[5592]: time="2021-04-13T11:01:01.0937…"
Apr 13 11:01:01 dushanbe.localdomain dockerd[5592]: time="2021-04-13T11:01:01.5812…"
Apr 13 11:01:01 dushanbe.localdomain dockerd[5592]: time="2021-04-13T11:01:01.9146…"
Apr 13 11:01:02 dushanbe.localdomain dockerd[5592]: time="2021-04-13T11:01:02.0033…2
Apr 13 11:01:02 dushanbe.localdomain dockerd[5592]: time="2021-04-13T11:01:02.0037…l
Apr 13 11:01:02 dushanbe.localdomain dockerd[5592]: time="2021-04-13T11:01:02.0040…"
Apr 13 11:01:02 dushanbe.localdomain dockerd[5592]: time="2021-04-13T11:01:02.0720…"
Apr 13 11:01:02 dushanbe.localdomain systemd[1]: Started Docker Application Contai….
Hint: Some lines were ellipsized, use -l to show in full.
[root@dushanbe ~]#

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

Leave a Reply

Your email address will not be published. Required fields are marked *