GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

UbuntuとDebianへのDockerのインストールと使用

Dockerは、 container と呼ばれる軽量のスタンドアロンパッケージを作成、デプロイ、管理できるツールです。 。これらのコンテナには、アプリケーションの実行に必要なコード、ライブラリ、ランタイム、システム設定、および依存関係があります。

このガイドでは、 aptを使用してさまざまなLinuxディストリビューションにDockerEngineをインストールする方法について説明します。 UbuntuやDebianを含むパッケージマネージャー、およびDockerイメージの取得と実行。

始める前に

  1. サポートされているLinuxディストリビューションを実行しているLinuxサーバーにコマンドラインでアクセスできることを確認してください。そうでない場合は、「はじめに」および「コンピュートインスタンスのセットアップとセキュリティ保護」ガイドに従って、新しいLinodeを作成してください。

    注 このガイドは、root以外のユーザーを対象としています。昇格された特権を必要とするコマンドには、接頭辞としてsudoが付けられます 。 sudoに慣れていない場合 コマンドについては、ユーザーとグループのガイドを参照してください。
  2. 次のDockerガイドを確認して、Docker、その利点、およびいつ使用するかについて理解を深めてください。

    • Dockerの概要
    • Dockerを使用する時期と理由

UbuntuおよびDebianへのDockerEngineのインストール

Docker Engineは、Dockerコンテナーをデプロイするときに使用される基盤となるコンテナー化ソフトウェアです。次の手順では、サポートされているこれらのUbuntuおよびDebianリリースのいずれかにDockerEngineをインストールします。

サポートされているディストリビューション: Ubuntu 20.04、Ubuntu 18.04、Ubuntu 16.04、Debian 10、Debian9。Ubuntu21.04、20.10、21.10などの最近の非LTSリリースもサポートされているはずです。

  1. Dockerが現在インストールされていないことを確認します。パッケージが見つからないことを示す出力は、無視しても問題ありません。

    sudo apt remove docker docker-engine docker.io
    
  2. Dockerのリポジトリを構成するために必要なパッケージをインストールします:

    sudo apt update
    sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
    
  3. DockerのGPGキーを追加します。次のコマンドで、[url]を置き換えます システムが実行しているディストリビューションに対応するURLを使用します。

    curl -fsSL [url]/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    • Ubuntu: https://download.docker.com/linux/ubuntu
    • Debian: https://download.docker.com/linux/debian
  4. 安定を追加します Dockerリポジトリ、再び[url]を置き換えます システムが実行しているディストリビューションに対応するURLを使用します。

    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] [url] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  5. Docker Engineとその他の必要なパッケージをインストールします:

    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io
    

これらのディストリビューションの追加のインストール手順は、Dockerのドキュメントに記載されています:

  • UbuntuにDockerEngineをインストールする
  • DebianにDockerEngineをインストールする

Dockerの起動とテスト

Docker Engineをインストールしたら、Dockerを起動し、テストイメージを実行してすべてが機能していることを確認します。

  1. Dockerサーバーが実行されていることを確認します。

    sudo systemctl start docker
    
  2. オプションで、サーバーの起動時に起動するようにDockerを構成します。このDockerインストール内で本番アプリケーションを実行する場合は、これをお勧めします。

    sudo systemctl enable docker
    sudo systemctl enable containerd
    
  3. 「hello-world」イメージを実行して、Dockerが正しくインストールされていることを確認します。

    sudo docker run hello-world
    

    成功した場合、Dockerはhello-worldイメージをダウンロードして実行し、成功メッセージを出力する必要があります。他のテキストの中でも、出力には次のようなメッセージが含まれている必要があります。

    Hello from Docker!
    This message shows that your installation appears to be working correctly.

非rootユーザーでのDockerの使用

デフォルトでは、sudo Dockerコマンドを実行するにはが必要ですが、 dockerと呼ばれる新しいグループ 、インストール中に作成されました。 Dockerデーモンが起動すると、 docker用のUnixソケットが開きます。 グループメンバー。

続行する前に、制限されたユーザーアカウントを持っていることを確認してください。 sudoグループに属しています。制限付きユーザーアカウントをまだ作成していない場合は、ガイド「コンピュートインスタンスまたはLinuxユーザーとグループの設定と保​​護」を参照してください。

  1. 以下のコマンドを入力して、 dockerにユーザーを追加します グループ、 [user]を置き換えます 制限付きユーザーアカウントの名前で。

    sudo usermod -aG docker [user]
    
  2. 制限付きユーザーとしてシステムにログインします。

  3. 制限付きユーザーがdockerを実行できることを確認します sudoのないコマンド 「hello-world」イメージをもう一度実行します。

    docker run hello-world
    

    出力には、前の出力と同様の成功メッセージが表示されます。

注意 docker groupは、rootユーザーと同様の特権を付与します。システムのセキュリティにどのように影響するかについて詳しくは、DockerのドキュメントにあるDocker DaemonAttackSurfaceガイドをご覧ください。 root権限を使用せずにDockerデーモンを実行するには、「Dockerデーモンをroot以外のユーザーとして実行する(ルートレスモード)」の手順に従います。

構成ファイルのロードによるエラーの解決

ユーザーがsudo dockerを実行した場合 グループに参加する前のコマンドでは、次のように構成ファイルのロードに失敗する場合があります。

WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied

問題は、ホームディレクトリ(〜/ .docker)の.dockerディレクトリがsudoによって付与された権限で作成されたことです。 。

考えられる修正は2つあります。

  1. .dockerを削除します ホームディレクトリからのディレクトリ。 Dockerは自動的に再作成しますが、カスタム設定はすべて失われます。

  2. .dockerの権限を変更します コマンドを使用したディレクトリ:

    sudo chown example_user:example_user /home/example_user/.docker -R
    sudo chmod g+rwx "/home/example_user/.docker" -R
    

Dockerイメージを使用したコンテナーのデプロイ

Dockerイメージは、コンテナーを作成するための手順と仕様を含むテンプレートです。 Dockerを使用するには、最初にイメージを取得するか、dockerfileを作成して独自のイメージを作成する必要があります。詳細については、Dockerの概要を参照してください。

画像の一覧表示

システム上のすべてのイメージを一覧表示するには、次のコマンドを実行します。これにより、 hello-worldが出力されます。 前の手順で使用した画像、およびすでに取得している可能性のある追加の画像。

docker images

画像の検索

画像は、Docker Hub(Dockerの公式レジストリ)などのDockerレジストリに保存されます。そのWebサイトで画像を参照するか、次のコマンドを使用してDockerレジストリを検索できます。次のコマンドで、[keyword]を置き換えます nginx など、検索するキーワードを使用します またはapache

docker search [keyword]

画像の取得

画像を見つけたら、サーバーにダウンロードします。次のコマンドで、[image]を置き換えます 使用する画像の名前を使用します。

docker pull [image]

たとえば、公式のnginxイメージをプルダウンするには、次のコマンドを実行します:docker pull nginx

イメージの実行

次に、docker runを使用して、イメージに基づいてコンテナを作成します 指図。繰り返しますが、[image]を置き換えます 使用する画像の名前を使用します。

docker run [image]

イメージがまだダウンロードされておらず、Dockerのレジストリで利用できる場合、イメージは自動的にサーバーにプルダウンされます。

Dockerコンテナの管理

コンテナの一覧表示

システムで実行されているすべてのアクティブな(および非アクティブな)Dockerコンテナーを一覧表示するには、次のコマンドを実行します。

docker ps -a

出力は次のようになります。このサンプル出力は、hello-worldを示しています。 コンテナ。

CONTAINER ID   IMAGE         COMMAND    CREATED       STATUS                   PORTS     NAMES
5039168328a5   hello-world   "/hello"   2 hours ago   Exited (0) 2 hours ago             magical_varahamihira

コンテナの開始

[ID]を置き換えて、次のコマンドでDockerコンテナを起動します 開始するコンテナに対応するコンテナIDを使用:

docker start [ID]

コンテナの停止

[ID]を置き換えて、次のコマンドでDockerコンテナを停止します 停止するコンテナに対応するコンテナID:

docker stop [ID]

一部の画像(hello-worldなど) image)実行後、自動的に停止します。ただし、他の多くのコンテナは、明示的に停止するように命令されるまで実行を継続するため、これらのコンテナをバックグラウンドで実行することをお勧めします。このような場合、このコマンドが役立ちます。

コンテナの削除

[ID]を置き換えて、次のコマンドでDockerコンテナを削除します 削除するコンテナに対応するコンテナID:

docker rm [ID]

詳細情報

このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。

  • DockerのWebサイト
  • Dockerのドキュメント
  • containerdのWebサイト

Docker
  1. Ubuntu 20.04でのDockerの問題?

  2. CentOSおよびFedoraへのDockerのインストールと使用

  3. ルートレスDockerのインストール方法(UbuntuおよびDebian)

  1. DockerをDebian/Ubuntuにインストールする方法

  2. Dockerのインストール(Ubuntu)

  3. UbuntuにDockerとWordPressをインストールする

  1. Ubuntu18.04および19.10をインストールした後に行うこと

  2. Ubuntu18.04にDockerをインストールする方法

  3. Ubuntu18.04にDockerをインストールして使用する方法