#やること
EC2にDockerレジストリを構築。
Docker Enterprise Edition 2.1を採用。
Dockerレジストリソフトは、DTRを採用。
サーバはAWSに構築。
#用語整理
・Dockerレジストリ・・・Dockerイメージを保存する場所
・DockerHub・・・公式のDockerレジストリ(https://hub.docker.com/)
・DTR(Docker Trusted Registry)・・・今回構築するプライベートなDockerレジストリ
・UCP(Universal Control Plane)・・・DTRを操作するUI等を含むもの
#バージョンマトリックス
OS Distribution(x86_64) | Enterprise Engine | UCP | DTR | Storage Driver | Orchestration | DTR Storage Backend |
---|---|---|---|---|---|---|
RHEL 7.4 | 18.09.x | 3.1.x | 2.6.x | overlay2, devicemapper | Swarm mode, Kubernetes | NFSv4, NFSv3, Amazon S3, S3 Compliant Alternatives, Azure Storage (Blob), Google Cloud Storage, OpenStack Swift, Local Filesystem |
RHEL 7.5 | 18.09.x | 3.1.x | 2.6.x | overlay2 | Swarm mode, Kubernetes | NFSv4, NFSv3, Amazon S3, S3 Compliant Alternatives, Azure Storage (Blob), Google Cloud Storage, OpenStack Swift, Local Filesystem |
RHEL 7.6 | 18.09.x | 3.1.x starting with 3.1.3 | 2.6.x starting with 2.6.2 | overlay2 | Swarm mode, Kubernetes | NFSv4, NFSv3, Amazon S3, S3 Compliant Alternatives, Azure Storage (Blob), Google Cloud Storage, OpenStack Swift, Local Filesystem |
#構築手順
1.EC2構築
2.DockerEngineEEインストール
3.UCPインストール
4.DTRインストール
#1.EC2構築
AMI:RHEL-7.5_HVM_GA-20180322-x86_64-1-Hourly2-GP2 (ami-6b0d5f0d)
インスタンスタイプ:t2.2xlarge
※DTR要件(最低限/推奨)
メモリ:16GB/16GB
CPU:2CPU/4CPU
Disk:10GB/25-100GB
参考URL:https://docs.docker.com/ee/dtr/admin/install/system-requirements/
#2.DockerEngineEEインストール
DockerEEはDockerHubから取得できます。
EEは1ヶ月間だけ、試用版で使えますので、ダウンロードします。
https://hub.docker.com/search/?q=&type=edition&offering=enterprise
※アカウント必須
・上記URLアクセス後、
Docker Enterprise (Red Hat Enterprise Linux)を選択。
Start 1 Month Trialを選択。
License Keyを選択して、ダウンロードします。
Copy and paste this URL to download your EditonがDockerEEのリポジトリのため、コピーしておきます。
ライセンスのダウンロードが終わったので、インストールを行っていきます。
$ sudo -s
# export DOCKERURL="リポジトリのURL"
# sh -c 'echo "$DOCKERURL/rhel" > /etc/yum/vars/dockerurl'
# sh -c 'echo "7.5" > /etc/yum/vars/dockerosversion'
# yum install -y yum-utils device-mapper-persistent-data lvm2
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
rhui-REGION-client-config-server-7 | 2.9 kB 00:00:00
rhui-REGION-rhel-server-releases | 3.5 kB 00:00:00
rhui-REGION-rhel-server-rh-common | 3.8 kB 00:00:00
(1/7): rhui-REGION-client-config-server-7/x86_64/primary_db | 3.3 kB 00:00:00
(2/7): rhui-REGION-rhel-server-rh-common/7Server/x86_64/group | 124 B 00:00:00
(3/7): rhui-REGION-rhel-server-releases/7Server/x86_64/group | 774 kB 00:00:00
(4/7): rhui-REGION-rhel-server-rh-common/7Server/x86_64/primary_db | 117 kB 00:00:00
(5/7): rhui-REGION-rhel-server-rh-common/7Server/x86_64/updateinfo | 33 kB 00:00:00
(6/7): rhui-REGION-rhel-server-releases/7Server/x86_64/updateinfo | 3.2 MB 00:00:00
(7/7): rhui-REGION-rhel-server-releases/7Server/x86_64/primary_db | 57 MB 00:00:01
Resolving Dependencies
--> Running transaction check
---> Package device-mapper-persistent-data.x86_64 0:0.7.3-3.el7 will be installed
--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: device-mapper-persistent-data-0.7.3-3.el7.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: device-mapper-persistent-data-0.7.3-3.el7.x86_64
--> Processing Dependency: libaio.so.1()(64bit) for package: device-mapper-persistent-data-0.7.3-3.el7.x86_64
---> Package lvm2.x86_64 7:2.02.180-10.el7_6.8 will be installed
--> Processing Dependency: lvm2-libs = 7:2.02.180-10.el7_6.8 for package: 7:lvm2-2.02.180-10.el7_6.8.x86_64
--> Processing Dependency: libdevmapper-event.so.1.02(Base)(64bit) for package: 7:lvm2-2.02.180-10.el7_6.8.x86_64
--> Processing Dependency: liblvm2app.so.2.2(Base)(64bit) for package: 7:lvm2-2.02.180-10.el7_6.8.x86_64
--> Processing Dependency: libdevmapper-event.so.1.02()(64bit) for package: 7:lvm2-2.02.180-10.el7_6.8.x86_64
--> Processing Dependency: liblvm2app.so.2.2()(64bit) for package: 7:lvm2-2.02.180-10.el7_6.8.x86_64
---> Package yum-utils.noarch 0:1.1.31-45.el7 will be updated
---> Package yum-utils.noarch 0:1.1.31-50.el7 will be an update
--> Running transaction check
---> Package device-mapper-event-libs.x86_64 7:1.02.149-10.el7_6.8 will be installed
---> Package libaio.x86_64 0:0.3.109-13.el7 will be installed
---> Package lvm2-libs.x86_64 7:2.02.180-10.el7_6.8 will be installed
--> Processing Dependency: device-mapper-event = 7:1.02.149-10.el7_6.8 for package: 7:lvm2-libs-2.02.180-10.el7_6.8.x86_64
--> Running transaction check
---> Package device-mapper-event.x86_64 7:1.02.149-10.el7_6.8 will be installed
--> Processing Dependency: device-mapper = 7:1.02.149-10.el7_6.8 for package: 7:device-mapper-event-1.02.149-10.el7_6.8.x86_64
--> Running transaction check
---> Package device-mapper.x86_64 7:1.02.146-4.el7 will be updated
--> Processing Dependency: device-mapper = 7:1.02.146-4.el7 for package: 7:device-mapper-libs-1.02.146-4.el7.x86_64
---> Package device-mapper.x86_64 7:1.02.149-10.el7_6.8 will be an update
--> Running transaction check
---> Package device-mapper-libs.x86_64 7:1.02.146-4.el7 will be updated
---> Package device-mapper-libs.x86_64 7:1.02.149-10.el7_6.8 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================
Package Arch Version Repository Size
============================================================================================================
Installing:
device-mapper-persistent-data x86_64 0.7.3-3.el7 rhui-REGION-rhel-server-releases 405 k
lvm2 x86_64 7:2.02.180-10.el7_6.8 rhui-REGION-rhel-server-releases 1.3 M
Updating:
yum-utils noarch 1.1.31-50.el7 rhui-REGION-rhel-server-releases 121 k
Installing for dependencies:
device-mapper-event x86_64 7:1.02.149-10.el7_6.8 rhui-REGION-rhel-server-releases 189 k
device-mapper-event-libs x86_64 7:1.02.149-10.el7_6.8 rhui-REGION-rhel-server-releases 188 k
libaio x86_64 0.3.109-13.el7 rhui-REGION-rhel-server-releases 24 k
lvm2-libs x86_64 7:2.02.180-10.el7_6.8 rhui-REGION-rhel-server-releases 1.1 M
Updating for dependencies:
device-mapper x86_64 7:1.02.149-10.el7_6.8 rhui-REGION-rhel-server-releases 293 k
device-mapper-libs x86_64 7:1.02.149-10.el7_6.8 rhui-REGION-rhel-server-releases 321 k
Transaction Summary
============================================================================================================
Install 2 Packages (+4 Dependent packages)
Upgrade 1 Package (+2 Dependent packages)
Total download size: 3.9 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/9): device-mapper-1.02.149-10.el7_6.8.x86_64.rpm | 293 kB 00:00:00
(2/9): device-mapper-event-1.02.149-10.el7_6.8.x86_64.rpm | 189 kB 00:00:00
(3/9): device-mapper-event-libs-1.02.149-10.el7_6.8.x86_64.rpm | 188 kB 00:00:00
(4/9): device-mapper-libs-1.02.149-10.el7_6.8.x86_64.rpm | 321 kB 00:00:00
(5/9): device-mapper-persistent-data-0.7.3-3.el7.x86_64.rpm | 405 kB 00:00:00
(6/9): libaio-0.3.109-13.el7.x86_64.rpm | 24 kB 00:00:00
(7/9): lvm2-libs-2.02.180-10.el7_6.8.x86_64.rpm | 1.1 MB 00:00:00
(8/9): lvm2-2.02.180-10.el7_6.8.x86_64.rpm | 1.3 MB 00:00:00
(9/9): yum-utils-1.1.31-50.el7.noarch.rpm | 121 kB 00:00:00
------------------------------------------------------------------------------------------------------------
Total 7.1 MB/s | 3.9 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : 7:device-mapper-1.02.149-10.el7_6.8.x86_64 1/12
Updating : 7:device-mapper-libs-1.02.149-10.el7_6.8.x86_64 2/12
Installing : 7:device-mapper-event-libs-1.02.149-10.el7_6.8.x86_64 3/12
Installing : libaio-0.3.109-13.el7.x86_64 4/12
Installing : device-mapper-persistent-data-0.7.3-3.el7.x86_64 5/12
Installing : 7:device-mapper-event-1.02.149-10.el7_6.8.x86_64 6/12
Installing : 7:lvm2-libs-2.02.180-10.el7_6.8.x86_64 7/12
Installing : 7:lvm2-2.02.180-10.el7_6.8.x86_64 8/12
Updating : yum-utils-1.1.31-50.el7.noarch 9/12
Cleanup : yum-utils-1.1.31-45.el7.noarch 10/12
Cleanup : 7:device-mapper-1.02.146-4.el7.x86_64 11/12
Cleanup : 7:device-mapper-libs-1.02.146-4.el7.x86_64 12/12
Verifying : device-mapper-persistent-data-0.7.3-3.el7.x86_64 1/12
Verifying : 7:device-mapper-event-libs-1.02.149-10.el7_6.8.x86_64 2/12
Verifying : 7:device-mapper-libs-1.02.149-10.el7_6.8.x86_64 3/12
Verifying : yum-utils-1.1.31-50.el7.noarch 4/12
Verifying : 7:lvm2-2.02.180-10.el7_6.8.x86_64 5/12
Verifying : 7:lvm2-libs-2.02.180-10.el7_6.8.x86_64 6/12
Verifying : libaio-0.3.109-13.el7.x86_64 7/12
Verifying : 7:device-mapper-1.02.149-10.el7_6.8.x86_64 8/12
Verifying : 7:device-mapper-event-1.02.149-10.el7_6.8.x86_64 9/12
Verifying : 7:device-mapper-1.02.146-4.el7.x86_64 10/12
Verifying : yum-utils-1.1.31-45.el7.noarch 11/12
Verifying : 7:device-mapper-libs-1.02.146-4.el7.x86_64 12/12
Installed:
device-mapper-persistent-data.x86_64 0:0.7.3-3.el7 lvm2.x86_64 7:2.02.180-10.el7_6.8
Dependency Installed:
device-mapper-event.x86_64 7:1.02.149-10.el7_6.8 device-mapper-event-libs.x86_64 7:1.02.149-10.el7_6.8
libaio.x86_64 0:0.3.109-13.el7 lvm2-libs.x86_64 7:2.02.180-10.el7_6.8
Updated:
yum-utils.noarch 0:1.1.31-50.el7
Dependency Updated:
device-mapper.x86_64 7:1.02.149-10.el7_6.8 device-mapper-libs.x86_64 7:1.02.149-10.el7_6.8
Complete!
#
Dockerエンジンのインストールには、
標準リポジトリのみだと足りないため、
拡張リポジトリの有効化をします。
# yum-config-manager --enable rhel-7-server-extras-rpms
Loaded plugins: amazon-id, rhui-lb
#
以下はAWS独自の手順です。
拡張のリポジトリを有効化します。
クラウドベンダによって手順は違います。
# yum-config-manager --enable rhui-REGION-rhel-server-extras
Loaded plugins: amazon-id, rhui-lb
=================================== repo: rhui-REGION-rhel-server-extras =================================
[rhui-REGION-rhel-server-extras]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7Server
baseurl =
cache = 0
cachedir = /var/cache/yum/x86_64/7Server/rhui-REGION-rhel-server-extras
check_config_file_age = True
compare_providers_priority = 80
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage =
enabled = 1
enablegroups = True
exclude =
failovermethod = priority
ftp_disable_epsv = False
gpgcadir = /var/lib/yum/repos/x86_64/7Server/rhui-REGION-rhel-server-extras/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/7Server/rhui-REGION-rhel-server-extras/gpgdir
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
hdrdir = /var/cache/yum/x86_64/7Server/rhui-REGION-rhel-server-extras/headers
http_caching = all
includepkgs =
ip_resolve =
keepalive = True
keepcache = False
mddownloadpolicy = sqlite
mdpolicy = group:small
mediaid =
metadata_expire = 21600
metadata_expire_filter = read-only:present
metalink =
minrate = 0
mirrorlist = https://rhui2-cds01.REGION.aws.ce.redhat.com/pulp/mirror/content/dist/rhel/rhui/server/7/7Ser r/x86_64/extras/os
mirrorlist_expire = 86400
name = Red Hat Enterprise Linux Server 7 Extra(RPMs)
old_base_cache_dir =
password =
persistdir = /var/lib/yum/repos/x86_64/7Server/rhui-REGION-rhel-server-extras
pkgdir = /var/cache/yum/x86_64/7Server/rhui-REGION-rhel-server-extras/packages
proxy = False
proxy_dict =
proxy_password =
proxy_username =
repo_gpgcheck = False
retries = 10
skip_if_unavailable = False
ssl_check_cert_permissions = True
sslcacert = /etc/pki/rhui/cdn.redhat.com-chain.crt
sslclientcert = /etc/pki/rhui/product/content-rhel7.crt
sslclientkey = /etc/pki/rhui/content-rhel7.key
sslverify = True
throttle = 0
timeout = 30.0
ui_id = rhui-REGION-rhel-server-extras/7Server/x86_64
ui_repoid_vars = releasever,
basearch
username =
DockerEngine用のリポジトリ有効化します。
# yum-config-manager --add-repo "$DOCKERURL/rhel/docker-ee.repo"
Loaded plugins: amazon-id, rhui-lb
adding repo from: https://storebits.docker.com/ee/rhel/sub-93c2d407-d67d-466a-b84f-0f4fe6d1a37f/rhel/docker-ee.repo
grabbing file https://storebits.docker.com/ee/rhel/sub-93c2d407-d67d-466a-b84f-0f4fe6d1a37f/rhel/docker-ee.repo to /etc/yum.repos.d/docker-ee.repo
repo saved to /etc/yum.repos.d/docker-ee.repo
#
リポジトリの準備が終わったので、インストールをします。
# yum -y install docker-ee docker-ee-cli containerd.io
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
docker-ee-stable-18.09 | 3.5 kB 00:00:00
rhui-REGION-rhel-server-extras | 3.4 kB 00:00:00
rhui-REGION-rhel-server-releases | 3.5 kB 00:00:00
rhui-REGION-rhel-server-rh-common | 3.8 kB 00:00:00
(1/5): rhui-REGION-rhel-server-extras/7Server/x86_64/group | 124 B 00:00:00
(2/5): rhui-REGION-rhel-server-extras/7Server/x86_64/updateinfo | 200 kB 00:00:00
(3/5): rhui-REGION-rhel-server-extras/7Server/x86_64/primary_db | 536 kB 00:00:00
(4/5): docker-ee-stable-18.09/x86_64/updateinfo | 55 B 00:00:01
(5/5): docker-ee-stable-18.09/x86_64/primary_db | 14 kB 00:00:01
Resolving Dependencies
--> Running transaction check
---> Package containerd.io.x86_64 0:1.2.6-3.3.el7 will be installed
--> Processing Dependency: container-selinux >= 2:2.74 for package: containerd.io-1.2.6-3.3.el7.x86_64
---> Package docker-ee.x86_64 3:18.09.7-3.el7 will be installed
---> Package docker-ee-cli.x86_64 1:18.09.7-3.el7 will be installed
--> Running transaction check
---> Package container-selinux.noarch 2:2.99-1.el7_6 will be installed
--> Processing Dependency: selinux-policy >= 3.13.1-216.el7 for package: 2:container-selinux-2.99-1.el7_6.noarch
--> Processing Dependency: selinux-policy-base >= 3.13.1-216.el7 for package: 2:container-selinux-2.99-1.el7_6.noarch
--> Processing Dependency: selinux-policy-targeted >= 3.13.1-216.el7 for package: 2:container-selinux-2.99-1.el7_6.noarch
--> Running transaction check
---> Package selinux-policy.noarch 0:3.13.1-192.el7 will be updated
---> Package selinux-policy.noarch 0:3.13.1-229.el7_6.12 will be an update
--> Processing Dependency: libsemanage >= 2.5-13 for package: selinux-policy-3.13.1-229.el7_6.12.noarch
--> Processing Dependency: policycoreutils >= 2.5-24 for package: selinux-policy-3.13.1-229.el7_6.12.noarch
---> Package selinux-policy-targeted.noarch 0:3.13.1-192.el7 will be updated
---> Package selinux-policy-targeted.noarch 0:3.13.1-229.el7_6.12 will be an update
--> Running transaction check
---> Package libsemanage.x86_64 0:2.5-11.el7 will be updated
--> Processing Dependency: libsemanage = 2.5-11.el7 for package: libsemanage-python-2.5-11.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-22.el7 will be updated
--> Processing Dependency: policycoreutils = 2.5-22.el7 for package: policycoreutils-python-2.5-22.el7.x86_64
---> Package policycoreutils.x86_64 0:2.5-29.el7_6.1 will be an update
--> Processing Dependency: libselinux-utils >= 2.5-14 for package: policycoreutils-2.5-29.el7_6.1.x86_64
--> Running transaction check
---> Package libselinux.x86_64 0:2.5-12.el7 will be updated
--> Processing Dependency: libselinux(x86-64) = 2.5-12.el7 for package: libselinux-python-2.5-12.el7.x86_64
---> Package libselinux.x86_64 0:2.5-14.1.el7 will be an update
---> Package libselinux-utils.x86_64 0:2.5-12.el7 will be updated
---> Package libselinux-utils.x86_64 0:2.5-14.1.el7 will be an update
---> Package libsemanage-python.x86_64 0:2.5-11.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-8.1.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-22.el7 will be updated
---> Package policycoreutils-python.x86_64 0:2.5-29.el7_6.1 will be an update
--> Processing Dependency: setools-libs >= 3.3.8-4 for package: policycoreutils-python-2.5-29.el7_6.1.x86_64
--> Running transaction check
---> Package libselinux-python.x86_64 0:2.5-12.el7 will be updated
---> Package libselinux-python.x86_64 0:2.5-14.1.el7 will be an update
---> Package setools-libs.x86_64 0:3.3.8-2.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:
containerd.io x86_64 1.2.6-3.3.el7 docker-ee-stable-18.09 26 M
docker-ee x86_64 3:18.09.7-3.el7 docker-ee-stable-18.09 21 M
docker-ee-cli x86_64 1:18.09.7-3.el7 docker-ee-stable-18.09 15 M
Installing for dependencies:
container-selinux noarch 2:2.99-1.el7_6 rhui-REGION-rhel-server-extras 39 k
Updating for dependencies:
libselinux x86_64 2.5-14.1.el7 rhui-REGION-rhel-server-releases 162 k
libselinux-python x86_64 2.5-14.1.el7 rhui-REGION-rhel-server-releases 236 k
libselinux-utils x86_64 2.5-14.1.el7 rhui-REGION-rhel-server-releases 152 k
libsemanage x86_64 2.5-14.el7 rhui-REGION-rhel-server-releases 151 k
libsemanage-python x86_64 2.5-14.el7 rhui-REGION-rhel-server-releases 113 k
libsepol x86_64 2.5-10.el7 rhui-REGION-rhel-server-releases 297 k
policycoreutils x86_64 2.5-29.el7_6.1 rhui-REGION-rhel-server-releases 916 k
policycoreutils-python x86_64 2.5-29.el7_6.1 rhui-REGION-rhel-server-releases 456 k
selinux-policy noarch 3.13.1-229.el7_6.12 rhui-REGION-rhel-server-releases 484 k
selinux-policy-targeted noarch 3.13.1-229.el7_6.12 rhui-REGION-rhel-server-releases 6.9 M
setools-libs x86_64 3.3.8-4.el7 rhui-REGION-rhel-server-releases 620 k
Transaction Summary
============================================================================================================
Install 3 Packages (+ 1 Dependent package)
Upgrade ( 11 Dependent packages)
Total download size: 72 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/15): container-selinux-2.99-1.el7_6.noarch.rpm | 39 kB 00:00:00
warning: /var/cache/yum/x86_64/7Server/docker-ee-stable-18.09/packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 76682bc9: NOKEY
Public key for containerd.io-1.2.6-3.3.el7.x86_64.rpm is not installed
(2/15): containerd.io-1.2.6-3.3.el7.x86_64.rpm | 26 MB 00:00:03
(3/15): docker-ee-18.09.7-3.el7.x86_64.rpm | 21 MB 00:00:03
(4/15): libselinux-2.5-14.1.el7.x86_64.rpm | 162 kB 00:00:00
(5/15): libselinux-utils-2.5-14.1.el7.x86_64.rpm | 152 kB 00:00:00
(6/15): libselinux-python-2.5-14.1.el7.x86_64.rpm | 236 kB 00:00:00
(7/15): libsemanage-2.5-14.el7.x86_64.rpm | 151 kB 00:00:00
(8/15): libsemanage-python-2.5-14.el7.x86_64.rpm | 113 kB 00:00:00
(9/15): libsepol-2.5-10.el7.x86_64.rpm | 297 kB 00:00:00
(10/15): policycoreutils-2.5-29.el7_6.1.x86_64.rpm | 916 kB 00:00:00
(11/15): policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm | 456 kB 00:00:00
(12/15): selinux-policy-3.13.1-229.el7_6.12.noarch.rpm | 484 kB 00:00:00
(13/15): setools-libs-3.3.8-4.el7.x86_64.rpm | 620 kB 00:00:00
(14/15): selinux-policy-targeted-3.13.1-229.el7_6.12.noarch.rpm | 6.9 MB 00:00:00
(15/15): docker-ee-cli-18.09.7-3.el7.x86_64.rpm | 15 MB 00:00:02
------------------------------------------------------------------------------------------------------------
Total 11 MB/s | 72 MB 00:00:06
Retrieving key from https://storebits.docker.com/ee/rhel/sub-93c2d407-d67d-466a-b84f-0f4fe6d1a37f/rhel/gpg
Importing GPG key 0x76682BC9:
Userid : "Docker Release (EE rpm) <docker@docker.com>"
Fingerprint: 77fe da13 1a83 1d29 a418 d3e8 99e5 ff2e 7668 2bc9
From : https://storebits.docker.com/ee/rhel/sub-93c2d407-d67d-466a-b84f-0f4fe6d1a37f/rhel/gpg
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : libsepol-2.5-10.el7.x86_64 1/26
Updating : libselinux-2.5-14.1.el7.x86_64 2/26
Updating : libsemanage-2.5-14.el7.x86_64 3/26
Updating : libselinux-utils-2.5-14.1.el7.x86_64 4/26
Updating : policycoreutils-2.5-29.el7_6.1.x86_64 5/26
Updating : selinux-policy-3.13.1-229.el7_6.12.noarch 6/26
Updating : selinux-policy-targeted-3.13.1-229.el7_6.12.noarch 7/26
Updating : libsemanage-python-2.5-14.el7.x86_64 8/26
Updating : setools-libs-3.3.8-4.el7.x86_64 9/26
Updating : libselinux-python-2.5-14.1.el7.x86_64 10/26
Updating : policycoreutils-python-2.5-29.el7_6.1.x86_64 11/26
Installing : 2:container-selinux-2.99-1.el7_6.noarch 12/26
Installing : containerd.io-1.2.6-3.3.el7.x86_64 13/26
Installing : 1:docker-ee-cli-18.09.7-3.el7.x86_64 14/26
Installing : 3:docker-ee-18.09.7-3.el7.x86_64 15/26
Cleanup : selinux-policy-targeted-3.13.1-192.el7.noarch 16/26
Cleanup : policycoreutils-python-2.5-22.el7.x86_64 17/26
Cleanup : selinux-policy-3.13.1-192.el7.noarch 18/26
Cleanup : policycoreutils-2.5-22.el7.x86_64 19/26
Cleanup : libselinux-utils-2.5-12.el7.x86_64 20/26
Cleanup : setools-libs-3.3.8-2.el7.x86_64 21/26
Cleanup : libselinux-python-2.5-12.el7.x86_64 22/26
Cleanup : libsemanage-python-2.5-11.el7.x86_64 23/26
Cleanup : libsemanage-2.5-11.el7.x86_64 24/26
Cleanup : libselinux-2.5-12.el7.x86_64 25/26
Cleanup : libsepol-2.5-8.1.el7.x86_64 26/26
Verifying : policycoreutils-2.5-29.el7_6.1.x86_64 1/26
Verifying : 1:docker-ee-cli-18.09.7-3.el7.x86_64 2/26
Verifying : setools-libs-3.3.8-4.el7.x86_64 3/26
Verifying : selinux-policy-targeted-3.13.1-229.el7_6.12.noarch 4/26
Verifying : selinux-policy-3.13.1-229.el7_6.12.noarch 5/26
Verifying : policycoreutils-python-2.5-29.el7_6.1.x86_64 6/26
Verifying : libsemanage-python-2.5-14.el7.x86_64 7/26
Verifying : libsemanage-2.5-14.el7.x86_64 8/26
Verifying : libsepol-2.5-10.el7.x86_64 9/26
Verifying : containerd.io-1.2.6-3.3.el7.x86_64 10/26
Verifying : libselinux-python-2.5-14.1.el7.x86_64 11/26
Verifying : libselinux-utils-2.5-14.1.el7.x86_64 12/26
Verifying : 2:container-selinux-2.99-1.el7_6.noarch 13/26
Verifying : libselinux-2.5-14.1.el7.x86_64 14/26
Verifying : 3:docker-ee-18.09.7-3.el7.x86_64 15/26
Verifying : libsemanage-python-2.5-11.el7.x86_64 16/26
Verifying : libsemanage-2.5-11.el7.x86_64 17/26
Verifying : libselinux-python-2.5-12.el7.x86_64 18/26
Verifying : setools-libs-3.3.8-2.el7.x86_64 19/26
Verifying : policycoreutils-2.5-22.el7.x86_64 20/26
Verifying : policycoreutils-python-2.5-22.el7.x86_64 21/26
Verifying : selinux-policy-targeted-3.13.1-192.el7.noarch 22/26
Verifying : libsepol-2.5-8.1.el7.x86_64 23/26
Verifying : selinux-policy-3.13.1-192.el7.noarch 24/26
Verifying : libselinux-2.5-12.el7.x86_64 25/26
Verifying : libselinux-utils-2.5-12.el7.x86_64 26/26
Installed:
containerd.io.x86_64 0:1.2.6-3.3.el7 docker-ee.x86_64 3:18.09.7-3.el7
docker-ee-cli.x86_64 1:18.09.7-3.el7
Dependency Installed:
container-selinux.noarch 2:2.99-1.el7_6
Dependency Updated:
libselinux.x86_64 0:2.5-14.1.el7 libselinux-python.x86_64 0:2.5-14.1.el7
libselinux-utils.x86_64 0:2.5-14.1.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-29.el7_6.1 policycoreutils-python.x86_64 0:2.5-29.el7_6.1
selinux-policy.noarch 0:3.13.1-229.el7_6.12 selinux-policy-targeted.noarch 0:3.13.1-229.el7_6.12
setools-libs.x86_64 0:3.3.8-4.el7
Complete!
#
これで完了。
Dockerサービスを起動させましょう。
# systemctl start 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 Sat 2019-07-06 04:49:42 UTC; 4s ago
Docs: https://docs.docker.com
Main PID: 2341 (dockerd)
Tasks: 8
Memory: 31.7M
CGroup: /system.slice/docker.service
mq2341 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Jul 06 04:49:42 ip-10-0-0-51.ap-northeast-1.compute.internal dockerd[2341]: time="2019-07-06T04:49:42.52..."
Jul 06 04:49:42 ip-10-0-0-51.ap-northeast-1.compute.internal dockerd[2341]: time="2019-07-06T04:49:42.52..."
Jul 06 04:49:42 ip-10-0-0-51.ap-northeast-1.compute.internal dockerd[2341]: time="2019-07-06T04:49:42.68..."
Jul 06 04:49:42 ip-10-0-0-51.ap-northeast-1.compute.internal dockerd[2341]: time="2019-07-06T04:49:42.76..."
Jul 06 04:49:42 ip-10-0-0-51.ap-northeast-1.compute.internal dockerd[2341]: time="2019-07-06T04:49:42.81..."
Jul 06 04:49:42 ip-10-0-0-51.ap-northeast-1.compute.internal dockerd[2341]: time="2019-07-06T04:49:42.82...7
Jul 06 04:49:42 ip-10-0-0-51.ap-northeast-1.compute.internal dockerd[2341]: time="2019-07-06T04:49:42.82..."
Jul 06 04:49:42 ip-10-0-0-51.ap-northeast-1.compute.internal dockerd[2341]: time="2019-07-06T04:49:42.82..."
Jul 06 04:49:42 ip-10-0-0-51.ap-northeast-1.compute.internal dockerd[2341]: time="2019-07-06T04:49:42.86..."
Jul 06 04:49:42 ip-10-0-0-51.ap-northeast-1.compute.internal systemd[1]: Started Docker Application Cont....
Hint: Some lines were ellipsized, use -l to show in full.
#
せっかくなので、コンテナ立ち上げテスト。
ubuntuを立ち上げます。
# docker run -it ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
5b7339215d1d: Pull complete
14ca88e9f672: Pull complete
a31c3b1caad4: Pull complete
b054a26005b7: Pull complete
Digest: sha256:9b1702dcfe32c873a770a32cfd306dd7fc1c4fd134adfb783db68defc8894b3c
Status: Downloaded newer image for ubuntu:latest
root@13841ed1810a:/#
root@13841ed1810a:/# exit
exit
#
これでDockerEEは終了です。
#3.UCPインストール
まずは、UCPのコンテナイメージをDockerHubからpullします。
# docker image pull docker/ucp:3.1.8
3.1.8: Pulling from docker/ucp
c87736221ed0: Pull complete
831158f6c3f0: Pull complete
7eaca31ce090: Pull complete
Digest: sha256:048414d9d3fd5cc93b3a762582c2cea73b94ef5449072b16231f13b9e355c1e4
Status: Downloaded newer image for docker/ucp:3.1.8
#
イメージをpullしたので、コンテナを立ち上げます。
# docker container run --rm -it --name ucp \
> -v /var/run/docker.sock:/var/run/docker.sock \
> docker/ucp:3.1.8 install \
> --host-address <自分のIPアドレス> \
> --interactive
INFO[0000] Your engine version 18.09.7, build b81f474 (3.10.0-862.el7.x86_64) is compatible with UCP 3.1.8 (b22346c)
Admin Username: <ユーザー名>
Admin Password: <パスワード>
Confirm Admin Password: <パスワード>
INFO[0031] Pulling required images... (this may take a while)
INFO[0031] Pulling docker/ucp-etcd:3.1.8
INFO[0036] Pulling docker/ucp-agent:3.1.8
INFO[0040] Pulling docker/ucp-kube-compose:3.1.8
INFO[0044] Pulling docker/ucp-hyperkube:3.1.8
INFO[0059] Pulling docker/ucp-kube-dns:3.1.8
INFO[0063] Pulling docker/ucp-metrics:3.1.8
INFO[0068] Pulling docker/ucp-auth:3.1.8
INFO[0072] Pulling docker/ucp-azure-ip-allocator:3.1.8
INFO[0075] Pulling docker/ucp-interlock-extension:3.1.8
INFO[0079] Pulling docker/ucp-interlock-proxy:3.1.8
INFO[0083] Pulling docker/ucp-calico-kube-controllers:3.1.8
INFO[0091] Pulling docker/ucp-calico-node:3.1.8
INFO[0097] Pulling docker/ucp-dsinfo:3.1.8
INFO[0113] Pulling docker/ucp-swarm:3.1.8
INFO[0116] Pulling docker/ucp-auth-store:3.1.8
INFO[0121] Pulling docker/ucp-kube-dns-sidecar:3.1.8
INFO[0125] Pulling docker/ucp-interlock:3.1.8
INFO[0128] Pulling docker/ucp-calico-cni:3.1.8
INFO[0133] Pulling docker/ucp-kube-dns-dnsmasq-nanny:3.1.8
INFO[0138] Pulling docker/ucp-pause:3.1.8
INFO[0141] Pulling docker/ucp-kube-compose-api:3.1.8
INFO[0146] Pulling docker/ucp-cfssl:3.1.8
INFO[0149] Pulling docker/ucp-controller:3.1.8
INFO[0157] Pulling docker/ucp-compose:3.1.8
We detected the following hostnames/IP addresses for this system [ip-10-0-0-51.ap-northeast-1.compute.internal 127.0.0.1 172.17.0.1 10.0.0.51]
You may enter additional aliases (SANs) now or press enter to proceed with the above list.
Additional aliases:
INFO[0000] Initializing a new swarm at 10.0.0.51
INFO[0007] Installing UCP with host address 10.0.0.51 - If this is incorrect, please specify an alternative address with the '--host-address' flag
INFO[0007] Deploying UCP Service...
INFO[0077] Installation completed on ip-10-0-0-51.ap-northeast-1.compute.internal (node gfr42419cmfwz2xt57wgf8wmh)
INFO[0077] UCP Instance ID: izfuh7vqgm5z9v76473dckqvi
INFO[0077] UCP Server SSL: SHA-256 Fingerprint=54:84:37:11:3A:64:A4:33:73:03:21:E7:C4:BE:9E:97:8B:3B:09:C1:FC:99:5C:06:08:BC:E7:0B:4E:FD:B1:FC
INFO[0077] Login to UCP at https://10.0.0.51:443
INFO[0077] Username:
INFO[0077] Password: (your admin password)
#
コンテナが立ち上がったので、ログインしましょう。
・https://<自分のIPアドレス>:443
EC2の場合、ローカルのIPではなく、ElasticIPでのログインになります。
証明書のエラーが出ますが、スルーしましょう。
ログイン後ライセンスキーの投入画面が出ます。
2.DockerEngineEEインストールでダウンロードしたライセンスキーを投入します。
これでUCPのインストールは終了です。
#4.DTRインストール
UCP操作をしていきます。
・Admin Settingを選択
・Docker Trusted Registryを選択
UCP NODEをプルダウンから選択。
Disable TLS verification for UCPのチェックを外す。
そうして出てきたコマンドを、RHELに打ち込みますが
残念ながらエラーになるはずです。
DTRはデフォルトで443のポートを使用します。
UCPが既に443を使用しているので、競合が発生します。
UCPを別ポートにする対処を行いましょう。
・Cluster Configurationを選択
Controller Portを443から8443に変更します。
変更が終わったら、UCPには8443でアクセスが出来ることを確認しましょう。
・https://<自分のIPアドレス>:8443
# docker run -it --rm docker/dtr install --ucp-node ip-10-0-0-51.ap-northeast-1.compute.internal --ucp-username <ユーザ名> --ucp-url https://10.0.0.51:8443 --ucp-insecure-tls
INFO[0000] Beginning Docker Trusted Registry installation
ucp-password:<パスワード>
INFO[0003] Validating UCP cert
INFO[0003] Connecting to UCP
INFO[0003] health checking ucp
INFO[0003] Only one available UCP node detected. Picking UCP node 'ip-10-0-0-51.ap-northeast-1.compute.internal'
INFO[0003] Searching containers in UCP for DTR replicas
INFO[0003] Searching containers in UCP for DTR replicas
INFO[0004] verifying [80 443] ports on ip-10-0-0-51.ap-northeast-1.compute.internal
INFO[0009] Waiting for running dtr-phase2 container to finish
INFO[0009] starting phase 2
INFO[0000] Validating UCP cert
INFO[0000] Connecting to UCP
INFO[0000] health checking ucp
INFO[0000] Verifying your system is compatible with DTR
INFO[0000] Checking if the node is okay to install on
WARN[0000] Node: ip-10-0-0-51.ap-northeast-1.compute.internal is a manager, it is **not** recommended for DTR to reside on a UCP manager node, see: https://docs.docker.com/ee/dtr/admin/install/system-requirements/ for more info.
WARN[0000] Installation will continue in 10 seconds...
INFO[0010] Using default overlay subnet: 10.1.0.0/24
INFO[0010] Creating network: dtr-ol
INFO[0010] Connecting to network: dtr-ol
INFO[0010] Waiting for phase2 container to be known to the Docker daemon
INFO[0011] Setting up replica volumes...
INFO[0011] Creating initial CA certificates
INFO[0011] Bootstrapping rethink...
INFO[0011] Creating dtr-rethinkdb-4bd224354f6a...
INFO[0020] Establishing connection with Rethinkdb
INFO[0021] Waiting for database dtr2 to exist
INFO[0021] Establishing connection with Rethinkdb
INFO[0021] Generated TLS certificate. dnsNames="[*.com *.*.com example.com *.dtr *.*.dtr]" domains="[*.com *.*.com 172.17.0.1 example.com *.dtr *.*.dtr]" ipAddresses="[172.17.0.1]"
INFO[0022] License config copied from UCP.
INFO[0022] Migrating db...
INFO[0000] Establishing connection with Rethinkdb
INFO[0000] Migrating database schema fromVersion=0 toVersion=10
INFO[0001] Waiting for database notaryserver to exist
INFO[0001] Waiting for database notarysigner to exist
INFO[0002] Waiting for database jobrunner to exist
INFO[0002] Migrated database from version 0 to 10
INFO[0025] Starting all containers...
INFO[0025] Getting container configuration and starting containers...
INFO[0025] Automatically configuring rethinkdb cache size to 14245 mb
INFO[0025] Recreating dtr-rethinkdb-4bd224354f6a...
INFO[0030] Creating dtr-registry-4bd224354f6a...
INFO[0038] Creating dtr-garant-4bd224354f6a...
INFO[0045] Creating dtr-api-4bd224354f6a...
INFO[0053] Creating dtr-notary-server-4bd224354f6a...
INFO[0060] Recreating dtr-nginx-4bd224354f6a...
INFO[0068] Creating dtr-jobrunner-4bd224354f6a...
INFO[0100] Creating dtr-notary-signer-4bd224354f6a...
INFO[0107] Creating dtr-scanningstore-4bd224354f6a...
INFO[0115] Trying to get the kv store connection back after reconfigure
INFO[0115] Establishing connection with Rethinkdb
INFO[0115] Verifying auth settings...
INFO[0115] Successfully registered dtr with UCP
INFO[0115] Installation is complete
INFO[0115] Replica ID is set to: 4bd224354f6a
INFO[0115] You can use flag '--existing-replica-id 4bd224354f6a' when joining other replicas to your Docker Trusted Registry Cluster
#
それでは、DTRにアクセスします。
・https://<自分のIPアドレス>:443
DTRの構築が無事終わりました。
レジストリとクライアント間の通信は、tlsのためCAの証明書が必要です。
下記コマンドでダウンロード配置を行います。
# curl -k https://<IPアドレス>/ca -o /etc/pki/ca-trust/source/anchors/hoge.crt
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 774 100 774 0 0 23399 0 --:--:-- --:--:-- --:--:-- 24187
#
# update-ca-trust
#
# systemctl restart docker
#
これでプライベートなDockerレジストリの構築が完了しました。
あとは、docker push/pullで素敵なdockerライフを送りましょう。
Dockerレジストリ設定の記事はまた、別に書こうと思います。
#参考URL
https://docs.docker.com/install/linux/docker-ee/rhel/#find-your-docker-ee-repo-url
https://docs.docker.com/ee/ucp/admin/install/
https://docs.docker.com/ee/dtr/admin/install/
#以下、個人的なメモ
メモ
・dockerイメージは下記にする必要があります。
[ホスト名]:[ポート番号]/[リポジトリ名/リポジトリ名]:[イメージ名]
# docker login 172.17.0.1:443
# docker tag registry.access.redhat.com/rhel7 [ホスト名]:[ポート番号]/[リポジトリ名/リポジトリ名]:[イメージ名]
# docker push [ホスト名]:[ポート番号]/[リポジトリ名/リポジトリ名]:[イメージ名]