アンドロイド

CentOS 7でDockerをインストールして使用する方法

Configuring Yum Repository Locally on Red Hat Enterprise Linux 6

Configuring Yum Repository Locally on Red Hat Enterprise Linux 6

目次:

Anonim

Dockerは、アプリケーションを迅速に構築、テスト、およびデプロイできるコンテナ化テクノロジーであり、事実上どこでも実行できる自給自足型のコンテナとして使用できます。

このチュートリアルでは、CentOS 7にDocker CEをインストールし、Dockerの基本的な概念とコマンドを調べる方法を説明します。

前提条件

このチュートリアルを進める前に、次の前提条件が満たされていることを確認してください。

  • CentOS 7サーバーsudo特権を持つ非rootユーザーとしてログインしています。 新しいsudoユーザーの作成方法については、このガイドを確認してください。

CentOSにDockerをインストールする

Dockerパッケージは、CentOS 7の公式リポジトリで入手できますが、常に最新バージョンであるとは限りません。 推奨されるアプローチは、DockerのリポジトリからDockerをインストールすることです。

CentOS 7サーバーにDockerをインストールするには、次の手順に従います。

  1. システムパッケージの更新から開始し、必要な依存関係をインストールします。

    sudo yum update sudo yum install yum-utils device-mapper-persistent-data lvm2

    次に、次のコマンドを実行して、システムにDocker安定リポジトリを追加します。

    sudo yum-config-manager --add-repo

    Dockerリポジトリが有効になったので、次を入力してyumを使用して最新バージョンのDocker CE(Community Edition)をインストールします。

    sudo yum install docker-ce

    Dockerパッケージをインストールしたら、Dockerデーモンを起動し、起動時に自動的に起動するように有効にします。

    sudo systemctl start docker sudo systemctl enable docker

    Dockerサービスが実行されていることを確認するには、次のように入力します。

    sudo 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 Wed 2018-10-31 08:51:20 UTC; 7s ago Docs: https://docs.docker.com Main PID: 2492 (dockerd) CGroup: /system.slice/docker.service ├─2492 /usr/bin/dockerd └─2498 docker-containerd --config /var/run/docker/containerd/containerd.toml

    執筆時点で、Dockerの現在の安定バージョンは 18.06.1 であり、Dockerバージョンタイプを出力します。

    docker -v

    Docker version 18.06.1-ce, build e68fc7a

Sudoを使用せずにDockerコマンドを実行する

デフォルトの管理では、Dockerには管理者権限が必要です。 sudo を付加せずに非ルートユーザーとしてDockerコマンドを実行する場合は、Docker CEパッケージのインストール中に作成されたdockerグループにユーザーを追加する必要があります。 次のように入力して、それを行うことができます。

sudo usermod -aG docker $USER

$USER は、ユーザー名を保持する環境変数です。

ログアウトしてから再度ログインし、グループメンバーシップを更新します。

Dockerが正常にインストールされ、sudoなしでdockerコマンドを実行できることを確認するには、次のコマンドを発行してテストイメージをダウンロードし、コンテナーで実行し、「Hello from Docker」メッセージを出力して終了します。

docker container run hello-world

出力は次のようになります。

Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 9bb5a5d4561a: Pull complete Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.

Dockerコマンドラインインターフェイス

Dockerが正常にインストールされたので、docker CLIの基本構文を見てみましょう。

dockerコマンドラインは次の形式を取ります。

docker

パラメーターなしで docker と入力すると、使用可能なすべてのコマンドを一覧表示できます。

docker

docker --help

Dockerイメージ

Dockerイメージは、実行可能なソフトウェアアプリケーションを構成するイメージのDockerfile内の命令を表す一連のレイヤーで構成されています。 イメージとは、アプリケーションと、アプリケーションの実行に必要なバイナリ、ライブラリ、命令などのその他すべての依存関係を含む不変のバイナリファイルです。 つまり、Dockerイメージは本質的にDockerコンテナーのスナップショットです。

Docker Hubはクラウドベースのレジストリサービスであり、他の機能の中でも特にDockerイメージをパブリックまたはプライベートリポジトリに保持するために使用されます。

Docker Hubリポジトリで画像を search するには、 search サブコマンドを使用し search 。 たとえば、CentOSイメージを検索するには、次を実行します。

docker search centos

出力は次のようになります。

NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 4257 ansible/centos7-ansible Ansible on Centos7 109 jdeathe/centos-ssh CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_… 94 consol/centos-xfce-vnc Centos container with "headless" VNC session… 52 imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 40 tutum/centos Simple CentOS docker image with SSH access 39

ご覧のとおり、検索結果には NAME DESCRIPTION STARS OFFICIAL 、および AUTOMATED 5つの列を持つテーブルが印刷されます。 公式イメージは、Dockerがアップストリームパートナーと共同で開発したイメージです。

CentOS 7の公式ビルドをダウンロードする場合、 image pull サブコマンドを使用してダウンロードできます。

docker image pull centos

Using default tag: latest latest: Pulling from library/centos 469cfcc7a4b3: Pull complete Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16 Status: Downloaded newer image for centos:latest

インターネットの速度に応じて、ダウンロードには数秒または数分かかる場合があります。 画像がダウンロードされると、次のように画像を一覧表示できます。

docker image ls

出力は次のようになります。

REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e38bc07ac18e 3 weeks ago 1.85kB centos latest e934aafc2206 4 weeks ago 199MB

何らかの理由でイメージを削除する場合は、 image rm サブコマンドを使用して削除できます。

docker image rm centos

Untagged: centos:latest Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16 Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0

Dockerコンテナ

イメージのインスタンスは、コンテナと呼ばれます。 コンテナは、単一のアプリケーション、プロセス、またはサービスのランタイムを表します。

これは最も適切な比較ではないかもしれませんが、プログラマーであれば、Dockerイメージをクラス、Dockerコンテナーをクラスのインスタンスと考えることができます。

docker container サブコマンドを使用して、コンテナーを開始、停止、削除、および管理できます。

次のコマンドは、CentoOSイメージに基づいてDockerコンテナーを開始します。 画像がローカルにない場合は、最初にダウンロードします:

docker container run centos

一見、何も起こらなかったように思えるかもしれません。 まあ、それは真実ではありません。 CentOSコンテナーは、長時間実行されるプロセスがなく、コマンドを提供しなかったため、起動直後に停止します。そのため、コンテナーが起動し、空のコマンドを実行して終了しました。

スイッチ -it 使用すると、コマンドラインを介してコンテナーと対話できます。 インタラクティブコンテナタイプを開始するには:

docker container run -it centos /bin/bash

コンテナーが開始されると出力からわかるように、コマンドプロンプトが変更されます。これは、コンテナー内から作業していることを意味します。

#

実行中のコンテナを一覧表示するには:を入力します。

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli 実行中のコンテナがない場合、出力は空になります。

実行中のコンテナと停止したコンテナの両方を表示するには、 -a スイッチを渡します。

docker container ls -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli c55680af670c centos "/bin/bash" 30 minutes ago Exited (0) 30 minutes ago modest_hawking c6a147d1bc8a hello-world "/hello" 20 hours ago Exited (0) 20 hours ago sleepy_shannon

1つ以上のコンテナを削除するには、コンテナIDを上からコピーして、 container rm サブコマンドの後に貼り付けます。

docker container rm c55680af670c

結論

CentOS 7マシンにDockerをインストールする方法と、DockerイメージをダウンロードしてDockerコンテナーを管理する方法を学習しました。 Docker Composeについて読むこともできます。これにより、マルチコンテナDockerアプリケーションを定義および実行できます。

このチュートリアルは、Dockerエコシステムの表面をかろうじてスクラッチするだけです。 次の記事のいくつかでは、Dockerの他の側面についても掘り下げていきます。 Dockerの詳細については、Dockerの公式ドキュメントをご覧ください。

ドッカーセンター