ウェブサイト検索

Docker をインストールし、CentOS および RHEL 8/7 での基本的なコンテナ操作を学習する - パート 1


この 4 回の記事シリーズでは、オペレーティング システム レベルの最上位で実行されるオープンソースの軽量仮想化ツールであるDocker について説明します。これにより、ユーザーは、小さなカプセル化されたアプリケーションを作成、実行、展開できます。コンテナ。

このタイプの Linux コンテナは、高速で移植性があり、安全であることが証明されています。 Docker コンテナ内で実行されるプロセスは常にメイン ホストから分離されており、外部からの改ざんを防ぎます。

このチュートリアルでは、Docker をインストールし、CentOS/RHEL 8/7 上で Docker コンテナを作成して実行する方法についての開始点を提供しますが、Docker の表面をなぞっただけです。

ステップ 1: Docker のインストールと構成

1. Docker の以前のバージョンは docker または docker-engine と呼ばれていました。これらがインストールされている場合は、新しいdocker-ce バージョンをインストールする前に、それらをアンインストールしてください。

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. 最新バージョンのDocker エンジンをインストールするには、Docker リポジトリを設定し、yum-utils パッケージをインストールして Docker を有効にする必要があります。システム上の安定したリポジトリ。

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3. 次に、Docker リポジトリと containerd から新しいバージョンの docker-ce を手動でインストールします。いくつかの問題により、Red Hat がインストールをブロックしたためです。 containerd.io > 1.2.0-3.el7docker-ce の依存関係です。

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install docker-ce docker-ce-cli

4. Docker パッケージがインストールされたら、以下のコマンドを使用してデーモンを起動し、ステータスを確認してシステム全体で有効にします。

systemctl start docker 
systemctl status docker
systemctl enable docker

5. 最後に、次のコマンドを発行して、コンテナ テスト イメージを実行して、Docker が適切に動作するかどうかを確認します。

docker run hello-world

以下のメッセージが表示されたら、すべてが正しい場所にあります。

サンプル出力
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://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

6. ここで、いくつかの基本的な Docker コマンドを実行して、Docker に関する情報を取得できます。

Docker に関するシステム全体の情報については、
docker info

Dockerバージョンの場合
docker version

7. 使用可能なすべての Docker コマンドのリストを取得するには、コンソールで「docker」と入力します。

docker

ステップ 2: Docker イメージをダウンロードする

8. Docker コンテナを起動して実行するには、まずホスト上の Docker Hub からイメージをダウンロードする必要があります。 Docker Hub は、そのリポジトリから多くの無料イメージを提供します。

Docker イメージ (Ubuntu など) を検索するには、次のコマンドを実行します。

docker search ubuntu

9. ニーズに基づいて実行するイメージを決定したら、以下のコマンドを実行してローカルにダウンロードします (この場合、Ubuntu イメージがダウンロードされて使用されます) ):

docker pull ubuntu

10. ホスト上で使用可能なすべての Docker イメージを一覧表示するには、次のコマンドを実行します。

docker images

11. Docker イメージが不要になり、ホストから削除する場合は、次のコマンドを実行します。

docker rmi ubuntu

ステップ 3: Docker コンテナを実行する

イメージに対してコマンドを実行すると、基本的にコンテナーが取得されます。コンテナ内で実行中のコマンドが終了すると、コンテナは停止します (コンテナは実行されていないか、終了しています)。同じイメージに対して別のコマンドを再度実行すると、新しいコンテナーが作成されます。

作成されたすべてのコンテナーは、docker rm コマンドを使用して削除することを選択するまで、ホスト ファイルシステム上に残ります。

12. コンテナを作成して実行するには、ダウンロードしたイメージ (この場合は Ubuntu) に対してコマンドを実行する必要があるため、基本的なコマンドは次の例のように、cat コマンドを使用してコンテナ内のディストリビューション バージョン ファイルを作成します。

docker run ubuntu cat /etc/issue

上記のコマンドは次のように分割されます。

docker run [local image] [command to run into container]

13. コンテナを作成するために実行されたコマンドを使用してコンテナの 1 つを再度実行するには、まずコンテナのID (または Docker によって自動的に生成された名前) を取得する必要があります。以下のコマンドを発行すると、実行中および停止した (実行されていない) コンテナーのリストが表示されます。

docker ps -l 

14. コンテナのIDを取得したら、次のコマンドを発行して、コンテナの作成に使用したコマンドでコンテナを再度起動できます。

docker start 923a720da57f

ここで、文字列 923a720da57f はコンテナのIDを表します。

15. コンテナーが実行状態の場合は、docker ps コマンドを発行してそのIDを取得できます。実行中のコンテナを停止するには、コンテナのIDまたは自動生成された名前を指定して、docker stop コマンドを発行します。

docker stop 923a720da57f
OR
docker stop cool_lalande
docker ps

16. コンテナの ID を覚えておく必要がないようにするためのより洗練された代替方法は、 を使用して作成するコンテナごとに一意の名前を割り当てることです。次の例のように、コマンドラインで -name オプションを使用します。

docker run --name ubuntu20.04 ubuntu cat /etc/issue

17. 次に、コンテナに割り当てた名前を使用して、コンテナを操作できます (開始停止削除)。、topstats) など)、以下の例のように、名前を指定するだけでさらに詳しくなります。

docker start ubuntu20.04
docker stats ubuntu20.04
docker top ubuntu20.04 

上記のコマンドの一部は、コンテナーの作成に使用されたコマンドのプロセスが終了すると、出力を表示しない場合があることに注意してください。コンテナ内で実行されるプロセスが完了すると、コンテナは停止します。

ステップ 4: コンテナーに対して対話型セッションを実行する

18. コンテナ シェル セッションに対話的に接続し、他の Linux セッションと同様にコマンドを実行するには、次のコマンドを実行します。

docker run -it ubuntu bash

上記のコマンドは次のように分割されます。

  1. -i は、対話型セッションを開始するために使用されます。
  2. -t は TTY を割り当て、stdin と stdout を接続します。
  3. ubuntu は、コンテナーの作成に使用したイメージです。
  4. bash (または /bin/bash) は、Ubuntu コンテナ内で実行しているコマンドです。

19. 実行中のコンテナ セッションを終了してホストに戻るには、exit コマンドを入力する必要があります。 exit コマンドは、すべてのコンテナ プロセスを終了して停止します。

exit

20. コンテナ ターミナル プロンプトに対話的にログオンしており、コンテナを実行状態に維持する必要があるが、対話型セッションを終了する必要がある場合は、終了できます。 コンソールに移動し、Ctrl+p キーと Ctrl+q キーを押してホスト ターミナルに戻ります。

21. 実行中のコンテナに再接続するには、コンテナのID または名前が必要です。 docker ps コマンドを発行して ID または name を取得し、コンテナ < を指定して dockerattach コマンドを実行します。上の図に示すように、strong>ID または 名前:

docker attach <container id>

22. ホスト セッションから実行中のコンテナを停止するには、次のコマンドを発行します。

docker kill <container id>

基本的なコンテナ操作は以上です。次のチュートリアルでは、Web サーバーを Docker コンテナーに保存、削除、実行する方法について説明します。