この詳細なDockerチュートリアルでは、新しいコンテナーの作成方法、コンテナーの実行方法、コンテナーの削除方法、コンテナーから独自のDockerイメージを構築する方法など、Dockerコマンドの基本について説明します。始めましょう!
Dockerをまだインストールしていない場合は、次のガイドを参照してください。
- CentOSにDockerをインストールする方法
- UbuntuにDockerをインストールする方法
LinuxでDockerを使い始める
以下に示すすべての手順は、Ubuntu18.04LTSサーバーエディションでテストされています。
Dockerを使い始める前に、DockerイメージとDockerコンテナーとは何かを明確にしましょう。
Docker Imageは、コンテナーの動作を決定するファイルであり、DockerContainerはDockerイメージの実行中または停止中のステージです。
コンテナは、ホストの残りのファイルから分離されています。
Dockerコンテナーを実行すると、Dockerイメージによって提供される分離されたファイルシステムが使用されます。 Dockerイメージは、アプリケーションの実行に必要なすべてのもの(すべての依存関係、構成、スクリプト、バイナリーなど)で構成されています。
このイメージには、環境変数、実行するデフォルトのコマンド、その他のメタデータなど、コンテナーの他の構成も含まれています。
1。 Dockerイメージを検索する
Dockerハブなどのレジストリから画像を取得できます 、または独自に作成します。疑問に思われる方のために説明すると、Dockerハブは、すべてのDockerユーザーがDockerイメージを構築、テスト、保存するオンラインの中央リポジトリです。
Dockerハブには数万のDockerイメージがあります。 "docker search"
を使用して任意のDockerイメージを検索できます コマンド。
たとえば、Ubuntuに基づいてDockerイメージを検索するには、次のコマンドを実行します。
$ sudo docker search ubuntu
出力例:
CentOSに基づいて画像を検索するには、次のコマンドを実行します:
$ sudo docker search ubuntu
AWSの画像を検索するには、次のコマンドを実行します:
$ sudo docker search aws
ワードプレスの場合:
$ sudo docker search wordpress
Dockerハブには、ほぼすべての種類のイメージがあります。オペレーティングシステム、アプリケーション、その他何であれ、Dockerハブにはビルド済みのDockerイメージがあります。
探しているものが利用できない場合は、それを作成して公開するか、自分で使用できるように非公開にしておくことができます。
2。 Dockerイメージをダウンロード
Ubuntu OS用のDockerイメージをダウンロードするには、ターミナルから次のコマンドを実行します。
$ sudo docker pull ubuntu
上記のコマンドは、Dockerハブから最新のUbuntuイメージをダウンロードします 。
出力例:
デフォルトタグの使用:latestlatest:ライブラリからプル/ ubuntu6abc03819f3e:プルコンプリート05731e63f211:プルコンプリート0bd67c50d6be:プルコンプリートダイジェスト:sha256:f08638ec7ddc90065187e7eabdfac3c96e5ff0f6b2f1762cf31a4f49b53000コマンドを使用して、Ubuntuイメージの特定のバージョンをダウンロードすることもできます:
$ docker pull ubuntu:18.04Dockerを使用すると、ホストOSに関係なく、任意のイメージをダウンロードしてコンテナーを起動できます。
たとえば、CentOSイメージをダウンロードするには、次のコマンドを実行します。
$ sudo docker pull centosダウンロードしたすべてのDockerイメージは、
/var/lib/docker/
に保存されます。 ディレクトリ。ダウンロードしたDockerイメージのリストを表示するには、次のコマンドを実行します。
$ sudo docker images出力例:
リポジトリタグ画像ID作成サイズubuntu最新7698f282e52414時間前69.9MBcentos最新9f38484d220f2か月前202MBhello-世界最新fce289e99eb94か月前1.84kB上記のように、3つのDockerイメージをダウンロードしました- Ubuntu 、 CentOS およびhello-world 。
それでは、ダウンロードしたイメージに基づいてコンテナを起動または実行する方法を見てみましょう。
3。 Dockerコンテナを実行する
コンテナは、 TAGを使用する2つの方法で開始できます。 または画像ID 。
タグ 画像と画像IDの特定のスナップショットを指します その画像に対応する一意の識別子です。
上記の結果のように、
"latest"
はすべてのコンテナのTAGであり、7698f282e524
Ubuntuの画像IDです Dockerイメージ、9f38484d220f
CentOSDockerイメージとfce289e99eb9
のイメージIDです。 hello_worldの画像IDです Dockerイメージ。選択したDockerイメージをダウンロードしたら、次のコマンドを実行して、TAGを使用してDockerコンテナを起動します。
$ sudo docker run -t -i ubuntu:latest / bin / bashここで
-
-t
:Ubuntuコンテナ内に新しい擬似端末を割り当てます。 -
-i
:コンテナの(STDIN)の標準を取得することで、インタラクティブな接続を確立できます。 -
ubuntu:latest
:TAGが「最新」のUbuntuコンテナ。 -
/bin/bash
:新しいコンテナ用のBASHシェル。
または、以下に示すように、IMAGEIDを使用してコンテナを起動できます。
$ sudo docker run -t -i 7698f282e524 / bin / bash
ここで
- 7698f282e524 -画像ID
コンテナを起動すると、コンテナのシェルに自動的に移動します(コマンドプロンプト):
コンテナ(ゲストOS)を終了せずにホストシステムのターミナル(私の場合はUbuntu 18.04 LTS)に戻るには、 CTRL+P
を押します。 続いてCTRL+Q
。
これで、元のホストコンピュータのターミナルウィンドウに安全に戻ることができます。コンテナはまだバックグラウンドで実行されており、まだ終了していないことに注意してください。
コンテナの実行リストを表示するには、次のコマンドを実行します。
$ sudo docker ps
出力例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES32fc32ad0d54 ubuntu:latest "/ bin /bash"7分前Up7分modest_jones
ここで
-
32fc32ad0d54
-コンテナID -
ubuntu:latest
--Dockerイメージ
コンテナIDとDockerイメージIDが異なることに注意してください 。
使用可能な(実行中または停止中の)すべてのコンテナーを一覧表示するには、次のコマンドを実行します。
$ sudo docker ps -a
ホストのシェルから停止(コンテナの電源を切る)するには、次のコマンドを実行します。
$ sudo docker stop
例:
$ sudo docker stop 32fc32ad0d54
実行中のコンテナに再度ログインまたは接続するには、次のコマンドを実行します。
$ sudo docker attach 32fc32ad0d54
ご存知のとおり、 32fc32ad0d54
はコンテナのIDです。
次のコマンドを入力して、シェル内からコンテナの電源をオフにするには:
#exit
次のコマンドを使用して、実行中のコンテナーのリストを確認できます。
$ sudo docker ps
4。カスタムDockerイメージを作成する
Dockerは、既存のコンテナーをダウンロードして使用するためだけのものではありません。独自のカスタムDockerイメージを作成することもできます。
これを行うには、コンテナを開始します:
$ sudo docker run -t -i ubuntu:latest / bin / bash
これで、コンテナのシェルに移動します。
次に、任意のソフトウェアをインストールするか、コンテナ内でやりたいことを実行します。
たとえば、ApacheWebサーバーをインストールしましょう。 コンテナ内。
#apt update#apt install apache2
同様に、コンテナに任意のソフトウェアをインストールしてテストします。
すべて設定したら、ホストシステムのシェルに戻ります。コンテナを停止したり、電源を切ったりしないでください。 Containerを停止せずにホストシステムのシェルに切り替えるには、CTRL+P
を押します。 続いてCTRL+Q
。
ホストコンピューターのシェルから、次のコマンドを実行してコンテナーIDを見つけます。
$ sudo docker ps
最後に、次のコマンドを使用して、実行中のコンテナのDockerイメージを作成します。
$ sudo docker commit 3d24b3de0bfc ostechnix / ubuntu_apache
サンプル出力:
sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962
ここで
-
3d24b3de0bfc
–UbuntuコンテナID。 -
ostechnix
–コンテナを作成したユーザーの名前。 -
ubuntu_apache
–ユーザーostechnixによって作成されたDockerイメージの名前。
次のコマンドを使用して、新しいDockerイメージが作成されているかどうかを確認しましょう:
$ sudo docker images
出力例:
リポジトリタグの画像ID作成サイズostechnix/ubuntu_apache最新のce5aa74a48f1約1分前191MB ubuntu最新7698f282e52415時間前69.9MBcentos最新9f38484d220f2か月前202MBhello-世界最新fce289e99eb94か月前1.84kB
上記の出力にあるように、新しいDockerイメージは、実行中のコンテナからローカルホストシステムに作成されています。
これで、コマンドを使用して、通常どおり、新しく作成されたDockerイメージから新しいコンテナーを作成できます。
$ sudo docker run -t -i ostechnix / ubuntu_apache / bin / bash
5。コンテナの削除
Dockerコンテナーを使用したすべての研究開発が完了したら、不要になった場合は削除できます。
そのためには、まず、実行中のコンテナを停止(電源オフ)する必要があります。
コマンドを使用して実行中のコンテナーを見つけましょう:
$ sudo docker ps
出力例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3d24b3de0bfc ubuntu:latest "/ bin /bash"28分前28分までgoofy_easley
IDを使用して実行中のコンテナを停止します:
$ sudo docker stop 3d24b3de0bfc
次に、コマンドを使用してコンテナを削除します:
$ sudo docker rm 3d24b3de0bfc
同様に、すべてのコンテナを停止し、不要になった場合は削除します。
複数のコンテナを1つずつ削除するのは、面倒な作業になる可能性があります。したがって、停止したすべてのコンテナを一度に削除できます。実行するだけです。
$ sudo docker container prune
"Y"
と入力します ENTER
を押します コンテナを削除するためのキー。
警告!これにより、停止したすべてのコンテナーが削除されます。続行してもよろしいですか? [y / N] y 削除されたコンテナー:32fc32ad0d5445f2dfd0d46121251c7b5a2aea06bb22588fb2594ddbe46e65645ec614e0302061469ece212f0dba303c8fe99889389749e6220fe891997f38d0合計再生スペース:5B
このコマンドは、最新のDockerバージョンでのみ機能します。
6。 Dockerイメージの削除
コンテナを削除したら、不要になったDockerイメージを削除できます。
ダウンロードされたDockerイメージのリストを見つけるには:
$ sudo docker images
出力例:
リポジトリタグイメージID作成サイズostechnix/ubuntu_apache最新ce5aa74a48f15分前191MBubuntu最新7698f282e52415時間前69.9MBcentos最新9f38484d220f2か月前202MBhello-world最新fce289e99eb94か月前1.84kB
上記のように、ホストシステムには3つのDockerイメージがあります。
IMAGE IDを使用して削除しましょう:
$ sudo docker rmi ce5aa74a48f1
出力例:
タグなし:ostechnix / ubuntu_apache:latestDeleted:sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962Deleted:sha256:d21c926f11a64b811dc75391bbe0191b50b8feトラブルシューティング
Dockerは、実行中または停止中のコンテナーで使用されているDockerイメージを削除することを許可しません。
たとえば、IDが
b72889fa879c
のDockerイメージを削除しようとすると 、私の古いUbuntuサーバーの1つから。次のエラーが発生しました:デーモンからのエラー応答:競合:b72889fa879cを削除できません(強制する必要があります)-停止したコンテナーdde4dd285377によってイメージが使用されていますこれは、削除するDockerイメージが現在別のコンテナーによって使用されているためです。
それでは、コマンドを使用して実行中のコンテナを確認しましょう:
$ sudo docker ps出力例:
おっと!実行中のコンテナはありません。
次のコマンドを使用して、すべてのコンテナ(実行中および停止中)をもう一度確認しましょう:
$ sudo docker ps -a出力例:
ご覧のとおり、Dockerイメージの1つを使用している停止中のコンテナーがまだいくつかあります。それでは、すべてのコンテナを削除しましょう。
例:
$ sudo docker rm 12e892156219同様に、それぞれのコンテナのIDを使用して、上記のようにすべてのコンテナを削除します。
すべてのコンテナを削除したら、最後にDockerイメージを削除します。
例:
$ sudo docker rmi b72889fa879cそれでおしまい。次に、コマンドを使用して、ホストに他のDockerイメージがあるかどうかを確認します。
$ sudo docker imagesこれで、Dockerの画像はおそらく表示されなくなります。
次を読む:
- Dockerネットワークの概念の説明
- 例を使用してDockerボリュームを説明する
- Dockerfileの簡単な紹介
- LinuxでのDockerComposeの使用を開始する
- Linuxでroot以外のユーザーとしてDockerを実行する方法
- Podmanチュートリアル–Podmanを使い始める
結論
この包括的なDockerチュートリアルの開始では、コンテナーの作成、実行、検索、削除、コンテナーからの独自のDockerイメージの構築などのDockerの基本について説明しました。
Dockerの使用法に関する基本的な考え方を理解していただければ幸いです。
詳細については、このガイドの最後にある公式リソースリンクを参照するか、下のコメントセクションにコメントをドロップしてください。
無料のDocker電子書籍をダウンロードする:
Download - Free eBook: "Docker Containerization Cookbook"
Download - Free Guide: "Understanding Docker"
Download - Free Guide: "What is Docker and Why is it So Popular?"
Download - Free Guide: "Introduction to Docker"
Download - Free Guide: "Docker in Production"
推奨される読み物:
- 実行中のDockerコンテナを自動的に更新する方法
- ctop –Linuxコンテナ用のコマンドライン監視ツール
- Portainer –Dockerを管理する最も簡単な方法
- PiCluster –シンプルなWebベースのDocker管理アプリケーション
- Dockly-ターミナルからDockerコンテナを管理する