Dockerは、アプリケーションの開発、出荷、実行のためのOSレベルの仮想化を提供するオープンプラットフォームのセットです。 Dockerでは、アプリケーションはコンテナーと呼ばれるパッケージ標準化されたユニットとして提供されます。ライブラリや構成ファイルを含め、各コンテナは互いに分離されていますが、それぞれが明確に定義されたネットワークチャネルを介して通信できます。
今のところ、Dockerはソフトウェア開発とDevOpsの標準になっています。何百万もの開発者が、職場で毎日アプリケーションを構築、共有、実行するために使用しています。開発自体からテスト、本番まで、アプリケーション開発のライフサイクルで使用されます。 Dockerを使用すると、アプリケーションの柔軟性と移植性が向上します。アプリケーションは、さまざまなオペレーティングシステムのどこでも簡単な方法で実行できますが、アプリケーション自体は、ライブラリから構成ファイルまで同じままです。
このチュートリアルでは、Debian11BullseyeにDockerをインストールする方法を学びます。また、コンテナの実行とイメージの管理のためのDockerの基本的な使用法についても学習します。
- Debian11サーバー。すべてのパッケージが最新バージョンに更新されていることを確認してください。
- rootユーザーまたはroot権限を持つユーザー。このユーザーは、新しいパッケージのインストールとシステム構成の編集に使用されます。
まず、Debianシステムにいくつかの基本的なパッケージの依存関係をインストールします。
1.以下のaptコマンドを実行して、新しいパッケージの依存関係をインストールします。
apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
' yと入力します 'を押して'Enter 'これらのパッケージをすべてインストールします。
Dockerリポジトリの追加
このガイドでは、公式のDockerリポジトリからDockerをインストールします。そのため、Debianシステムに新しいDockerリポジトリを追加します。
1.次のコマンドを実行して、DockerのGPGキーを追加します。
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2.その後、以下のコマンドを使用して、Debian11システムのDockerリポジトリを追加します。
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3.' apt updateを実行します '使用可能なすべてのリポジトリを更新/更新するコマンド。
apt update
これで、DockerをDebian11Bullseyeにインストールする準備が整いました。
Debian11へのDockerのインストール
1.システムに以前にDebianリポジトリからDockerがインストールされている場合は、以下のコマンドを使用してDockerを削除する必要があります。
sudo apt remove docker docker-engine docker.io containerd runc
2.その後、以下のaptコマンドを使用してDockerを再インストールできます。
apt install docker-ce docker-ce-cli containerd.io
' yと入力します 'を押して'Enter 'インストールを確認します。
3.インストールが完了したら、次のコマンドを実行してインストールを確認します。
サービスが有効になっているかどうかを確認してください。
systemctl is-enabled docker
systemctl is-enabled containerd
DockerとContainerdサービスのステータスを確認します。
systemctl status docker containerd
以下は、得られる同様の出力です。
ご覧のとおり、DockerサービスとContainerdサービスはアクティブ(実行中) 、および両方のサービスが有効 システムの起動時に自動的に実行されます。
デフォルトでは、Dockerはユーザー' rootのみを許可します 'コンテナを実行します。また、root以外のユーザーがコンテナーを実行できるようにするには、root以外のユーザーをグループ' docker に追加する必要があります。 '、Dockerのインストール中に自動的に作成されます。
1.この例では、ユーザー' johndoeを使用します 'Dockerコンテナを実行します。
次のコマンドを使用して、Debianシステムに新しいユーザー「johndoe」を作成します。
useradd -m -s /bin/bash johndoe
2.その後、次のコマンドを実行して、ユーザー' johndoeを追加します。 'グループへ'docker '。
usermod -aG docker johndoe
3.ユーザー'johndoeとしてログインします '以下のコマンドを使用して、構成を確認します。
su - johndoe
次のdockerコマンドを実行して、インストールを確認します。
docker run hello-world
そして、「 Hello Docker」が表示されます '以下のメッセージ。
以下は、上で実行するdockerコマンドの簡単な説明です。
- dockerはイメージ名「hello-world」を見つけようとします。イメージがローカルで利用可能な場合、Dockerはコンテナーを実行します。イメージがローカルで利用できない場合、DockerはDockerハブ(デフォルトのDockerイメージリポジトリ)でイメージ「hello-world」を見つけてダウンロードします。 >
- Dockerイメージがダウンロードされると、Dockerはコンテナーを実行します。そして、コンテナはコマンドを実行し、「HelloDocker」メッセージを表示します。
4.次に、以下のdockerコマンドを使用してdockerコンテナーを確認します。
状態が「実行中」のコンテナをチェックしています '。
docker ps
すべてのコンテナをチェックする-現在実行中および停止中のすべてのコンテナが表示されます。
docker ps -a
以下は、以下と同様の出力です。
ご覧のとおり、新しいコンテナ名' bold_bartix 'はベースイメージ'hello-worldで作成されます 'であり、コンテナの現在のステータスは'終了です。 'または停止しました。スクリーンショットのコンテナ名「bold_bartix」はDockerによってランダムに選択されていますが、コンテナの名前を指定できます。
この段階では、イメージとコンテナーを管理するためのDockerの非常に基本的な使用法を学習します。
1.まず、次のコマンドを使用してDockerイメージをローカルコンピューターにダウンロードします。
docker pull nginx:alpine
このコマンドは、Dockerイメージ名' nginxをダウンロードします 'とタグ'高山 'システムに。
用語'タグ 'は画像自体のバージョンのようなものです。 ' nginx:alpine 'は'nginxを意味します 'タグ付きの画像'高山 '、これはAlpineLinuxオペレーティングシステムに基づくことを意味します。公式のDocker-HubリポジトリでDockerイメージの利用可能なすべてのタグを常に確認してください。
以下は、Dockerイメージで使用可能なすべてのタグの例です' nginx '。
ローカルシステムで使用可能なすべてのDockerイメージを確認するには、次のdockerコマンドを実行します。
docker images
以下のような出力が表示されます。
ご覧のとおり、2つのDockerイメージ、 nginx:alpine があります およびhello-world 。
2.次に、次のコマンドを実行してコンテナを実行します。
docker run -it --rm -d -p 8080:80 --name web nginx:alpine
これで、新しいコンテナのランダムな文字列と番号が取得されます。
知っておくべきオプション:
- -i または--interactive--接続されていない場合でもコンテナSTDINを開いたままにします。
- -t または--tty-端末をコンテナのSTDINおよびSTDOUTに接続する疑似端末を割り当てます。
- -rm -コンテナが終了または停止すると、コンテナが自動的に削除されます。
- -d -コンテナをバックグラウンドで実行し、実行後にコンテナをアタッチ解除します。
- -p 8080:80 -コンテナとホストシステム間のポートをマッピングします。ポート'80 'コンテナ ホストシステムにマッピングされています ポート'8080 '。
- -名前のウェブ -新しいコンテナ名を「web」として指定します '。
- nginx:alpine -使用するDockerイメージは'nginx:alpine '。
次に、以下のコマンドを使用して実行中のコンテナを確認します。
docker ps
以下と同様の結果が表示されます。
Nginxコンテナを確認するには、ウェブブラウザを開き、サーバーのIPアドレスをポート' 8080で入力します '。
http://192.168.1.10:8080/
そして、コンテナの webからNginxインデックスページが表示されます。 '以下のように。
3.次に、次のdockerコマンドを実行して、コンテナのログを確認できます。
docker logs web
また、コンテナのすべてのログが最初から最後まで表示されます。
ログ出力を制限するには、「-tail n」を使用できます。 'オプションは以下のとおりです。
docker logs --tail 10 web
そして、最後の10行が表示されます コンテナログの。
4.ここで、Dockerコンテナーを停止するには、以下のDockerコマンドを実行できます。
docker stop web
その後、次のコマンドを使用して実行中のコンテナを確認します。
docker ps
docker ps -a
以下のような出力が表示されます。
'ウェブ 'コンテナは停止し、自動的に削除されます。これは、オプション'-rmを使用しているためです。 'コンテナを実行するとき。
5.次に、カスタムボリュームでコンテナを実行する方法を学習します。ホストマシン上のディレクトリは、Dockerコンテナのボリュームとして使用されます。
新しい'データを作成します 'ディレクトリとカスタム'index.html '次のコマンドを使用してファイルします。
mkdir -p ~/data/
nano ~/data/index.html
カスタムの'index.htmlをコピーして貼り付けます '以下のスクリプト。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to Docker Nginx</title>
</head>
<body>
<h2>Hello from Nginx container</h2>
</body>
</html>
' Ctrl + x を押して、構成を保存します 'ボタン、' yと入力します '、次に' Enter '。
次に、以下のdockerコマンドを使用して新しいコンテナを作成します。
docker run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine
これで、コンテナの乱数と文字列を取得できます。
オプション'-v〜/ data:/ usr / share / nginx / html 'は'〜/ dataをマウントします 'ローカルマシン上の'/ usr / share / nginx / htmlのコンテナへ 'ディレクトリ。
次に、次のコマンドを使用してDockerコンテナを確認します。
docker ps
そして、以下のような出力が表示されます。
次に、Webブラウザを再度開き、ポート' 8080を付けてサーバーのIPアドレスを入力します。 '以下のように。
http://192.168.1.10:8080/
そして、上に作成したカスタムの「index.html」が表示されます。これは、「〜/ data」を意味します。 'ディレクトリはコンテナにマウントされます'/ usr / share / nginx / html 'ディレクトリ。
6.さらに、現在実行中のコンテナ' webにログインできます。 '以下のdockerコマンドを実行します。
まず、コンテナのウェブを確認します 'が実行されています。
docker ps
次に、以下のコマンドを使用してコンテナ「web」に接続します。
docker exec -it web /bin/sh
コンテナ内で、次のコマンドを使用してコンテナのホスト名を確認します。
hostname
' ipを使用してコンテナのIPアドレスを確認します '以下のコマンド。
ip a
次のコマンドを使用して、コンテナのルーティングテーブルを確認します。
route -n
以下は、得られる同様の出力です。
現在の環境をクリーンアップするには、「ウェブ」を停止します '次のコマンドを使用するコンテナ。
docker stop web
また、ステータスが「終了」のすべてのコンテナを削除できます '以下のコマンドを使用します。
docker rm $(docker ps --filter "status=exited" -q)
おめでとうございます!これで、Debian11BullseyeにDockerが正常にインストールされました。また、Docker-Hubからイメージをプルし、Dockerコンテナーを実行し、Dockerコンテナーのステータス、ログ、およびDockerボリュームの基本的な使用法を確認するためのDockerの基本的な使用法を学習しました。次のステップでは、アプリケーション用のカスタムDockerイメージを作成して、DockerHubリポジトリにプッシュすることができます。