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

誰もが知っておくべき最も便利な[Docker]コマンド[例]

このチュートリアルは、Docker関連の記事シリーズの続きであり、最も頻繁に使用されるDockerコマンドについて説明しています。 Dockerの概要を簡単に説明してから、サーバーへのDockerのインストールにジャンプします。次に、Dockerコンテナ、イメージ、ボリュームを管理するために必要なすべてのコマンドについて説明します。このガイドに従って10分でプロのDockerユーザーになりましょう。

Dockerとは

Docker は、アプリケーションを開発、出荷、および実行するためのオープンプラットフォームです。これは、デスクトップからクラウドまで、アプリをパッケージ化して共有するための標準的なデファクトです。

その目標を達成するために、Dockerはコンテナを使用しています。

コンテナには次の特徴があります。

  • コンテナは、ソフトウェアと必要なすべてのライブラリのパッケージです。
  • 起動されるとすぐに、コンテナがアプリケーションのランタイム環境を決定します。
  • コンテナは仮想マシンよりも軽量であるため、はるかに高速に起動できます。
  • コンテナは、複数のレイヤーで構成されるイメージの形式で配布されます。複数のコンテナでこれらのレイヤーを再利用できます。

上記の機能により、次のことが可能になります。

  • 展開用の分離された環境を構築します。
  • アプリケーションを数分で起動します。

Dockerは、ソフトウェア開発プロセスのすべてのステップを簡素化および自動化するのに役立ちます。

Dockerの重要な機能は次のとおりです。

  • Dockerには巨大なコミュニティがあります。
  • Dockerは、ソフトウェアを配布するためのシンプルで軽量な方法です。
  • Dockerには、考えられるすべての目的のためのコンテナの巨大なパブリックリポジトリがあります。
  • Dockerは開発と運用のコストを削減します。
  • Dockerの構成は簡単で迅速です。
  • Dockerはアプリケーションの分離を提供します。
  • Dockerイメージには、バージョン管理されたレイヤーがあります。
  • Dockerはコンテナ管理のすべてのステップを自動化します。

Dockerは、Linux、macOS、およびWindowsオペレーティングシステムにインストールできます。

Dockerをインストールする

このセクションでは、LinuxオペレーティングシステムにDocker CE(コミュニティエディション)パッケージをインストールする方法について説明します。

AWSクラウドを使用している場合は、CloudFormationを使用したEC2インスタンスへのDockerの自動インストールに関する記事をお勧めします。

Ubuntu/DebianにDockerをインストールする

デフォルトでは、UbuntuまたはDebianのデフォルトリポジトリには最新バージョンのDockerCEパッケージが含まれていません。そのため、DockerCE公式リポジトリをシステムに追加する必要があります。

リポジトリを追加する前に、次のコマンドを実行して、必要な依存関係をいくつかインストールします。

apt-get install apt-transport-https ca-certificates curl software-properties-common curl -y

すべての依存関係をインストールした後、次のコマンドを使用してDockerGPGキーをインポートします;

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

次に、次のコマンドを使用して、DockerCE公式リポジトリをAPTソースファイルに追加します。

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"

リポジトリが追加されたら、リポジトリキャッシュを更新する必要があります。次のコマンドで更新できます:

apt-get update -y

リポジトリが最新になったら、次のコマンドを実行して、最新バージョンのDockerCEをシステムにインストールします。

apt-get install docker-ce -y

上記のコマンドは、Docker CEパッケージをシステムにインストールし、サービスを自動的に開始します。

次のコマンドを実行して、インストールされているDockerCEのバージョンを確認できます。

docker --version

次の出力にDockerバージョンが表示されます。

Docker version 19.03.13, build 4484c46d9d

システムからDockerパッケージを削除する場合は、次のコマンドを実行します。

apt-get remove docker-ce

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

CentOSまたはRHELオペレーティングシステムの場合、システムにDockerCEリポジトリをインストールする必要があります。以下に示すように、DNFコマンドを使用して、DockerCEリポジトリを追加して有効にすることができます。

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Docker CEリポジトリーが追加されたら、次のコマンドを実行して、DockerCEの使用可能なすべてのバージョンを一覧表示できます。

dnf list docker-ce --showduplicates | sort -r

次の出力で完全なリストを取得する必要があります:

docker-ce.x86_64                3:19.03.13-3.el8                docker-ce-stable
Docker CE Stable - x86_64                        54 kB/s | 3.8 kB     00:00
CentOS-8 - Extras                                14 kB/s | 8.1 kB     00:00
CentOS-8 - Base                                 4.6 MB/s | 2.2 MB     00:00
CentOS-8 - AppStream                            4.7 MB/s | 5.8 MB     00:01
Available Packages

次に、次のコマンドを実行して、最新バージョンのDockerCEをインストールします。

dnf install docker-ce --nobest

Dockerがインストールされたら、次のコマンドを使用してインストールされたバージョンを確認します。

docker --version

次の出力が得られるはずです:

Docker version 19.03.13, build 4484c46d9d

Dockerサービスを開始するには、次のコマンドを実行します。

systemctl start docker

Dockerサービスを停止するには、次のコマンドを実行します。

systemctl stop docker

次のコマンドを実行して、Dockerに関する詳細情報を表示することもできます。

docker info

次の出力が表示されます。

システムからDockerパッケージを削除する場合は、次のコマンドを実行します。

dnf remove docker-ce

Dockerを使用したコンテナーの管理

docker container コマンドは、コンテナのライフサイクルを管理するために使用されます。コンテナを実行するためのイメージがない場合、Dockerはレジストリに移動してダウンロードします。

Dockerコンテナを実行する

次の構文を使用して、Dockerレジストリからイメージをダウンロードし、コンテナを作成します。

docker container run [your-image-name]

たとえば、次のコマンドを実行して、ApacheWebサーバーコンテナを作成します。

docker container run httpd

次の出力が得られるはずです:

オプション--rmを使用できます Docker runコマンドを使用して、コンテナーが終了した後にコンテナーを削除します。

docker container run --rm httpd

Dockerコンテナシェルに接続

オプション-itを使用できます Dockerのrunコマンドを使用して、Apacheコンテナを作成して起動し、インタラクティブなbashシェルにアタッチします。

docker container run -it httpd /bin/bash

次の出力が得られるはずです:

​​バックグラウンドでDockerコンテナを起動

これで、コンテナ内で任意のコマンドを実行できます。

オプション-tdを使用できます Docker runコマンドを使用して、Apacheコンテナーを作成および開始し、実行を継続します。

docker container run -td httpd

次の出力が得られるはずです:

Dockerコンテナ名を設定する

オプション--nameを使用できます Docker runコマンドを使用して、次の構文を使用してコンテナー名を割り当てます。

docker container run --name [container-name] -td [image-name]

たとえば、Apacheイメージから新しいコンテナを作成し、apachewebという名前を割り当てます。 次のコマンドを使用します:

docker container run --name apacheweb -td httpd
特定のポートでDockerコンテナをバインドする

外部マシンのコンテナプロセスにアクセスする場合は、コンテナポートを外部ネットワークに公開できます。

この場合、オプション-pを使用できます 以下に示すように、Dockerコマンドを使用して特定のポートを公開します。

docker container run -p [host-port]:[container-port] --name [container-name] -dit [image-name]

たとえば、Apacheウェブサーバーコンテナを作成し、コンテナポート80をポート 8080に公開します。 次のコマンドを使用します:

docker container run -p 8080:80 --name apacheweb -dt httpd

これで、URL http:// localhost:8080 を使用して、コンテナ内で実行されているApacheWebサーバーにアクセスできます。 。

すべてのDockerコンテナを一覧表示

システムで実行中および停止中のすべてのコンテナーを一覧表示するには、次のコマンドを実行します。

docker ps -a

次の出力にすべてのコンテナが表示されます。

システムで実行中のコンテナのみを一覧表示するには、次のコマンドを実行します。

docker ps

次のコマンドを使用してコンテナを一覧表示することもできます。

docker container ls

Dockerコンテナの統計を表示する

apachewebという名前の実行中のコンテナ(CPUとメモリの使用率、ネットワークとディスクI / O)のライブ統計を表示するには 、次のコマンドを実行します:

docker stats apacheweb

次の出力が表示されます。

すべてのDockerコンテナプロセスを表示

apachewebという名前の実行中のコンテナ内で実行中のすべてのプロセスを一覧表示するには 、次のコマンドを実行します:

docker top apacheweb

次の出力が表示されます。

Dockerコンテナログを表示する

apachewebという名前の実行中のコンテナのログを表示するには 、次のコマンドを実行します:

docker logs apacheweb

次の出力が表示されます。

Dockerコンテナの開始、停止、一時停止

apachewebという名前の実行中のコンテナを停止するには 、次のコマンドを実行します:

docker container stop apacheweb

apachewebという名前のコンテナを起動するには 、次のコマンドを実行します:

docker container start apacheweb

apachewebという名前のコンテナを一時停止するには 、次のコマンドを実行します:

docker container pause apacheweb

Dockerコンテナを再起動または強制終了します

apachewebという名前の実行中のコンテナを再起動するには 、次のコマンドを実行します:

docker container restart apacheweb

apachewebという名前の実行中のコンテナを強制終了します 、次のコマンドを実行します:

docker container kill apacheweb
すでに実行中のDockerコンテナにアタッチ

実行中のコンテナに接続するには、次のコマンドを実行します。

docker container exec -it apacheweb /bin/bash

実行中のコンテナ内でコマンドを実行するには、次のコマンドを実行します。

docker container exec -it apacheweb ls

Dockerイメージの管理

このセクションでは、Dockerイメージを管理するために最も一般的に使用されるコマンドをいくつか紹介します。

レジストリからDockerイメージをダウンロード

Dockerレジストリからイメージをダウンロードまたはプルするには、次の構文を使用します。

docker pull [image-name]

たとえば、次のコマンドを使用して、DockerレジストリからNginxWebサーバーイメージをプルできます。

docker pull nginx

次の出力が得られるはずです:

Dockerイメージをレジストリにアップロード

既存のイメージをDockerレジストリにアップロードする場合は、次の構文を使用します。

docker push [image-name]

DockerTheRegistryにログイン

まず、次のコマンドを使用してDockerレジストリにログインする必要があります。

docker login

ログインしたら、次のコマンドを実行してNginxイメージのIDを取得し、次のコマンドでイメージにタグを付けます。

docker images

出力:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f35646e83998        3 weeks ago         133MB
httpd               latest              3dd970e6b110        3 weeks ago         138MB

Dockerイメージにタグを追加

次に、次のコマンドで画像にタグを付けます。

docker tag f35646e83998 amaksimov/nginx

場所:

  • f35646e83998 画像ID、 amaksimov Dockerレジストリ名とnginx 画像の名前です。

次に、次のコマンドを使用してNginxイメージをDockerレジストリにプッシュします。

docker push amaksimov/nginx

次の出力が表示されます。

実行中のコンテナーからDockerイメージを作成する

次の構文を使用して、既存のコンテナからイメージを作成することもできます。

docker commit [container-name] [new-image-name]

たとえば、Apacheコンテナからイメージを作成し、次のコマンドを実行します。

docker commit apacheweb apache-image

次のコマンドを実行して、既存のイメージをtarアーカイブに保存するには:

docker save apache-image > apache-image.tar

Dockerイメージの履歴

次のコマンドを使用して、Dockerイメージの履歴を印刷できます。

docker history apache-image

次の出力が得られるはずです:

Dockerイメージを削除

次の構文を使用して、Dockerイメージを削除できます。

docker rmi [image-name]

たとえば、Apacheイメージを削除する場合は、httpdを使用しているコンテナを停止する必要があります。 画像:

docker container stop apacheweb
docker rm apacheweb

まず、apache-imageを削除する必要があります 画像:

docker rmi apache-image

その後、httpdを削除します 次のコマンドを使用した画像:

docker rmi httpd

時間の経過とともに、手動で作成されたイメージとコンテナは、サーバーに混乱をもたらす可能性があります。すべてをクリーンアップする方法については、Dockerのよくある質問をご覧ください。

Dockerボリュームの管理

新しいコンテナを作成し、一部のデータを保存し、コンテナを削除すると、データは失われます。この場合、ホストシステム上にボリュームを作成し、このボリュームを使用してコンテナを起動できます。コンテナを削除した後、ボリュームからデータを取得できます。 Dockerボリュームを使用して、複数のコンテナー間でデータを共有することもできます。

このセクションでは、最も一般的に使用されるdocker volume 例を含むコマンド。

Dockerボリュームを作成

datavolumeという名前の新しいボリュームを作成するには 次のコマンドを使用します:

docker volume create datavolume
すべてのDockerボリュームを一覧表示

作成したボリュームを一覧表示するには、次のコマンドを実行します。

docker volume ls

次の出力が表示されます。

ボリュームに関する詳細情報を印刷するには、次のコマンドを実行します。

docker inspect datavolume

次の出力が表示されます。

ボリュームをDockerコンテナにマウント

apachewebという名前の新しいコンテナを作成し、ホストシステムのデータボリュームをコンテナの/ mntディレクトリにマウントするには、次のコマンドを実行します。

docker run -it --name apacheweb1  --mount source=datavolume,destination=/mnt -td httpd
リモートDockerボリューム

ボリュームを削除するには、次のコマンドを実行します。

docker volume rm datavolume
ドッカーに関するFAQ 未使用のDockerイメージを削除する方法

未使用のDockerイメージをすべて削除するには、次のコマンドを実行する必要があります。

docker rmi $(docker images -a -q)
終了したすべてのDockerコンテナーを削除する方法

次のコマンドを実行すると、終了したすべてのDockerコンテナを削除できます。

docker rm $(docker ps -a -f status=exited -q)
すべてのDockerコンテナを停止して削除する方法

すべてのDockerコンテナを停止するには、次を実行する必要があります:

docker stop $(docker ps -a -q)

停止したすべてのDockerコンテナを削除するには、次を実行する必要があります:

docker rm $(docker ps -a -q)

すべての未使用のDockerイメージ、コンテナー、ボリューム、ネットワークを削除する方法

未使用のDockerリソースをすべて削除するには、次のコマンドを使用できます。

docker system prune

すべてのDockerリソース(使用済みおよび未使用)を完全に削除するには、次のコマンドを実行します:

docker system prune -a
概要

上記のガイドでは、最も一般的に使用されるDockerコマンドとその使用法について例を挙げて学習しました。これが日常のタスクの実行に役立つことを願っています。


Docker
  1. Linuxカーネルについて知らなかった30のこと

  2. 一部のDOCKERコマンド

  3. Linuxシステムで最も役立つNginxコマンド

  1. すべてのLinuxユーザーが知っておくべき10個のコマンド

  2. 10最も便利なUbuntuLinuxコマンド

  3. Dockerpsコマンドの便利な例

  1. 知っておくべきNginxコマンド

  2. 知っておくべきApacheコマンド

  3. Kubernetes、Docker、コンテナ オーケストレーションを気にする必要があるのはなぜですか?