GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOSでDockerをアップグレードする方法

Dockerは、アプリケーションを開発、出荷、実行するためのオープンソースプラットフォームです。 Docker v17.12は、この記事を書いている時点での最新の安定したリリースです。コンテナと呼ばれる完全に分離された環境でアプリケーションをパッケージ化して実行する機能を提供します。特定のホストで同時に多数のコンテナーを実行できます。コンテナはハイパーバイザーを必要としないため軽量で高速ですが、ホストマシンのカーネル内で直接実行されます。

Dockerアーキテクチャ

Dockerはクライアントサーバーアプリケーションであり、クライアントとデーモンの両方を同じシステムで実行することも、DockerクライアントをリモートのDockerデーモンに接続することもできます。 DockerクライアントとデーモンはソケットまたはRESTfulAPIを介して通信します(Representational State Transfer-目的のコンテンツを含み、説明するXMLファイルを含むWebページのHTTPを介したステートレス転送です)。

Dockerの主なコンポーネントは

です。
  • Docker Daemon :Dockerデーモン(dockerd)は、Docker APIリクエストをリッスンし、イメージ、コンテナー、ネットワーク、ボリュームなどのDockerオブジェクトを管理します。デーモンは、他のデーモンと通信してDockerサービスを管理することもできます。
  • Docker Client :Dockerクライアント(docker)は、DockerユーザーがDockerと対話するための主要な方法です。 docker run、docker buildなどのコマンドを使用する場合、クライアントはこれらのコマンドをdockerdaemon(dockerd)に送信します。dockerdaemon(dockerd)はそれらを実行します。 dockerコマンドはDockerAPIを使用します。複数のデーモンと通信できます。
  • Docker Registry (2.4.1) :DockerレジストリはDockerイメージを保存します。 DockerHubとDockerCloudは、誰でも使用できるパブリックレジストリです。デフォルトでは、DockerはDockerHubでイメージを検索するように構成されています。画像用に独自のプライベートレジストラを設定することもできます。

この記事では、CentOS7とFedora27の両方でDockerを利用可能な最新バージョンにアップグレードする方法について説明します。

前提条件

Docker CEバージョンをインストールするには、CentOS7の維持バージョンが必要です。centos-extrasリポジトリを有効にする必要があります。このリポジトリはデフォルトで有効になっていますが、無効にしている場合は、再度有効にする必要があります。

CentOS7.4でのDockerのアップグレード

Dockerをアップグレードするには、Docker Community Edition(Docker CE)をインストールすることをお勧めします。これは、特定のワークロードに必要なサポートと保証を備えたDockerのインストール、アップグレード、および保守に役立ちます。 overlay2ストレージドライバーをお勧めします。 overlay2 DockerCEのデフォルトの選択です。ストレージドライバーは、Dockerホストでのイメージとコンテナーの保存方法と管理方法を制御します。 Dockerは、いくつかの異なるストレージドライバーをサポートしています。 devicemapper 次の選択肢ですが、direct-lvm が必要です パフォーマンスを向上させるための本番環境向け。

古いDockerバージョンをアップグレードする手順から始めましょう。

  • 古いバージョンのDockerをアンインストールする

dockerおよびdocker-engineパッケージは、古いパッケージと呼ばれます。これらの古いバージョンを実行している場合は、最初にそれらをアンインストールして先に進むことができます。このコマンドを実行して、サーバーからすべてのDockerトレースを削除します。

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

これらのパッケージがサーバーから削除された場合でも、イメージ、コンテナー、ボリューム、ネットワークなど、必要なすべてのDockerコンテンツは、/var/lib/docker/ に保持されます。 フォルダ。

  • DockerCEのインストール

まず、Dockerリポジトリをセットアップし、それを使用してインストールできます。これにより、同じリポジトリでのインストールとアップグレードのプロセスがはるかに簡単になります。リポジトリを設定するには、yum-utilsパッケージによって提供されるyum-config-managerユーティリティが必要です。前に説明したように、Docker CEはストレージドライバーを優先します。ここでは、devicemapper を使用します。 。したがって、このストレージドライバーには、このdevice-mapper-persistent-data and lvm2 packages が必要です。 。このコマンドを使用して、リポジトリを設定するためのこれらすべての前提条件をインストールできます。

#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

This step is optional: エッジリポジトリとテストリポジトリもこのリポジトリファイルに含まれており、デフォルトでは無効になっています。必要に応じて、これらのリポジトリファイルをStableリポジトリと一緒に有効にして、利用可能なEdgeまたはテストバージョンをインストールできます。これは、以下のコマンドを発行することで実行できます。

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

これらのリポジトリを有効にした後、installコマンドはEdgeリポジトリからインストールをプッシュします。

# 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 を実行した場合でも、サーバー上に古いDockerコンポーネントの痕跡が残っている場合があります。 手順1と同様にコマンドを実行します。インストール中に、使用可能な古いバージョンのDockerがある場合は、次のようなエラーが報告されます。

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を実行して、Dockerサービスを開始して有効にし、インストールを確認できます。 画像。

# 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/

DockerCEのアップグレード

yum upgradeコマンドを使用して、Dockerのバージョンを将来的に最新の安定バージョンに更新できます。現在、サーバーには、Docker17.12バージョンである利用可能な最新のStableDockerビルドが既にインストールされています。

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

これで、この現在の安定バージョンを利用可能な最新のEdgeバージョンにアップグレードする必要がある場合は、Dockerリポジトリでエッジリポジトリファイルを有効にして、次のようにyumupgradeコマンドを実行できます。

# 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

Fedora27でのDockerのアップグレード

FedoraとCentOSはどちらもRedHatからのものであるため、使用されるコマンドは、Dockerパッケージの違いを除いてほとんど同じです。前のケースと同様に、Fedoraでも、インストールとアップグレードを容易にするために、利用可能な古いバージョンのDockerを削除し、Docker Community Edition(Docker CE)をインストールする必要があります。

前提条件

Dockerをインストールするには、これらの最新のFedora27バージョンの64ビットバージョンが必要です

Fedoraで古いDockerバージョンをアップグレードする手順から始めましょう。

  • 古いバージョンのDockerをアンインストールする

前に説明したように、dockerおよびdocker-engineパッケージは古いパッケージと呼ばれます。以下のコマンドを使用して、これらの古いパッケージを削除できます。

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

これらのパッケージがサーバーから削除された場合でも、イメージ、コンテナー、ボリューム、ネットワークなど、必要なすべてのDockerコンテンツは/ var / lib /docker/フォルダーに保持されます。

  • DockerCEのインストール

Docker CEバージョンをインストールするには、FedoraのDockerリポジトリを有効にする必要があります。このリポジトリをセットアップするには、dnfパッケージマネージャーを管理するためのいくつかのコマンドが必要です。 dnf-plugins-core packageは、コマンドラインからDNFリポジトリを管理するためのコマンドを提供します。以下のコマンドを使用してこれをインストールできます:

# dnf -y install dnf-plugins-core

これで、このコマンドを使用してStableリポジトリを有効にし、dnf install を使用してこのリポジトリから入手できる最新のStableバージョンをインストールできます。 コマンド。

# 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

前に述べたように、EdgeリポジトリファイルとTestリポジトリファイルの両方がこのDockerリポジトリ(docker.repoファイル)内に存在します。ただし、安定層のみを有効にするために、デフォルトでは両方が無効になっています。必要に応じて、以下のコマンドを使用して有効にできます。

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

DockerCEをアップグレードする

Docker CEをアップグレードするには、dnf -y upgrade を使用できます。 。これにより、Dockerリポジトリ内で利用可能な最新の安定層にアップグレードされます。

# dnf -y upgrade docker-ce

まとめ

Dockerにより、開発者と運用チームはそれぞれアプリケーションをすばやく作成してデプロイすることが容易になりました。同社が製品を改善し、顧客の要件に対応するためにDockerのクイックアップデートをリリースすることで、Dockerの将来は間違いなく明るいです。


Cent OS
  1. CentOS 7 /RHEL7にDockerをインストールする方法

  2. CentOS6.9-6.0からCentOS6.10をアップグレードする方法

  3. CentOS7.8をCentOS7.7-7.0からアップグレードする方法

  1. CentOSにDockerをインストールする方法

  2. CentOS6でGitバージョン>=1.7.10をアップグレードする方法

  3. CentOS7をCentOS8にアップグレードする方法

  1. CentOS7にDockerをインストールする方法

  2. CentOS7にDockerComposeをインストールする方法

  3. CentOS7をCentOS8Linuxにアップグレードする方法