(最終更新日:2023年8月)
✔当記事は次のような方を対象としています
「DockerをLinux環境でどのように使用するのか知りたい」
「DockerのLinuxコマンドラインの基本的な使い方について学びたい」
「具体的なDockerとLinuxの活用例を見つけたい」
✔当記事で提供する情報
- DockerとLinuxの基本的な関連性
- DockerをLinux上で適切に操作するための方法とヒント
- 具体的なDockerとLinuxの利用例
当記事では、DockerとLinuxの基本的な使い方から、具体的な活用方法まで、実例を通じて詳しく解説します。
ぜひ最後までご覧ください。
Dockerの基本
こちらでは、Dockerとその重要性について紹介します。
Dockerについて理解することで、効率的なソフトウェア開発と運用が可能です。
- Dockerとは
- コンテナソフトウェアとしてのDockerの役割
Dockerとは
Dockerは、コンテナという技術を用いてアプリケーションの実行環境をパッケージ化するプラットフォームです。
この技術により、開発環境と本番環境の間で発生する「動作環境の違い」による問題を解決できます。
あるアプリケーションが特定のライブラリやミドルウェアに依存している場合でも、それらを含むコンテナを作成すれば、どの環境でも同じようにアプリケーションを実行できるのです。
コンテナソフトウェアとしてのDockerの役割
コンテナソフトウェアであるDockerは、アプリケーションとその依存関係を一緒に包んで、隔離された環境(コンテナ)で動作させる役割を果たします。
Dockerによる効果は以下のとおりです。
- 開発者や運用担当者の環境構築にかかる手間を大幅に削減できる
- アプリケーションのデプロイメントとスケーリングを容易におこなえる
- コンテナのライフサイクル管理により、コンテナの作成や開始、停止、削除などを制御できる
Dockerのインストール方法
こちらでは、Dockerをインストールするための前提条件と手順について見ていきましょう。
Dockerを正しくインストールすることで、効果的なコンテナ化の利点を享受できます。
- Dockerのインストールの前提条件
- Dockerのインストールの手順
Dockerのインストールの前提条件
Dockerをインストールするためには、いくつかの前提条件が必要です。
一般的には、以下のいずれかを実行していることが必要です。
- 64ビット版のWindows 10 Pro
- Enterprise
- Education
Virtualization Technology(VT)が、BIOSで有効になっていることも必要となります。
Dockerのインストールの手順
WindowsにDocker Desktopをインストールする手順は以下の通りです。
- Docker公式サイトからDocker Desktopのインストーラをダウンロード
- インストーラをダブルクリックして起動し、指示に従ってインストールを進める
- 一連のインストールが完了したら、Windowsを再起動
- 再起動後、Dockerが正しくインストールされていることを確認
コマンドプロンプトまたはPowerShellを開き、以下のコマンドを実行し、確認できます。
docker version
表示されれば、Dockerは正常にインストールされています。
詳しいインストール方法はこちらをご覧ください。
Dockerコンテナの使用練習
次に、Dockerコンテナの使用方法を学びます。
ここでは、コンテナイメージのダウンロードと、コンテナの起動と確認の方法について紹介します。
- コンテナイメージのダウンロード
- コンテナの起動と確認
コンテナイメージのダウンロード
Dockerは公式のDocker Hubからコンテナイメージをダウンロードが可能。
ここでは例として、Alpine Linuxのイメージをダウンロードします。
以下のコマンドを実行してみてください。
docker pull alpine
上記のコマンドを実行すると、DockerはDocker HubからAlpineイメージを取得し、ローカルシステムに保存します。
ダウンロードが成功すると、ターミナルにはイメージの詳細が表示されます。
コンテナの起動と確認
ダウンロードしたAlpineイメージからコンテナを起動するには、以下のコマンドを実行します。
docker run -it alpine /bin/bash
このコマンドは、Alpineイメージを使用して新しいコンテナを起動し、そのコンテナ内部で/bin/
bashコマンドを実行するもの。
結果として、Alpine Linuxのシェルが開始されます。
コンテナが正しく起動していることを確認するには、新たなターミナルウィンドウを開いて以下のコマンドを実行します。
docker ps
このコマンドは、現在実行中のすべてのコンテナを一覧表示するものです。
Alpine Linuxコンテナがリストに表示されれば、コンテナは正常に起動しています。
DockerでのWebサーバーの活用
こちらでは、DockerでWebサーバーを立ち上げる方法をご紹介します。
- Linux上でのパッケージリストの更新
- NGINXのインストールと動作テスト
Linux上でのパッケージリストの更新
Dockerコンテナ内でWebサーバーを立ち上げる前に、パッケージリストを更新してください。
Alpine Linuxを使用している場合は、以下のコマンドでパッケージリストを更新できます。
apk update
Alpineのパッケージマネージャは最新のパッケージリストをダウンロードし、新しいソフトウェアのインストールを可能にします。
NGINXのインストールと動作テスト
次に、Webサーバーとしてよく使われるNGINXをインストールしてみましょう。
次のコマンドを実行して、NGINXをインストールします。
apk add nginx
インストールが完了したら、次のコマンドを使用してNGINXを起動します。
nginx
NGINXが正常に動作していることを確認するために、別のターミナルからcurl
コマンドを使用します。
コンテナのIPアドレスを確認するために、以下のコマンドでコンテナの詳細情報を表示しましょう。
docker inspect [container-id]
IPアドレスが分かったら、以下のコマンドでNGINXの起動を確認できます。
curl http://[container-ip]
Dockerには、NginxやApacheなどのコンテナも用意されています。Linux環境上に手動でインストールするのではなく、最初からWebサーバーが搭載されているイメージを使うのもおすすめです。以下の記事を参考にしてください。
コンテナイメージの作成と管理
Dockerでは、コンテナイメージを自由に作成できます。
詳しく見ていきましょう。
- NGINXが起動するコンテナイメージの作成
- コンテナの停止とイメージの確認
NGINXが起動するコンテナイメージの作成
コンテナのイメージ化は、開発作業の効率化を促します。
なぜなら一度設定したDockerコンテナの状態を、イメージとして保存し、ほかの環境でも使い回せるからです。
今回はNGINXが起動するコンテナイメージを作成してみましょう。
1.実行中のコンテナIDを調べる
docker ps
2.イメージとして保存する
以下のコマンドを実行して、実行中のコンテナの状態を新たなイメージとして保存します。
docker commit [container-id] my-nginx
これで、”my-nginx”という名前のイメージが作成されました。
コンテナの停止とイメージの確認
一度コンテナを停止してみましょう。
以下のコマンドを実行してコンテナを停止します。
docker stop [container-id]
停止した後も、先ほど作成した”my-nginx”イメージを使って同じ状態のコンテナを再度起動できます。
以下のコマンドで新たなコンテナを起動します。
docker run -d -p 80:80 my-nginx
これで新たなコンテナが起動し、再びNGINXにアクセスできる状態になります。
次に進む前に、docker images
コマンドを実行して、自分が作成したイメージが存在することを確認しましょう。
docker images
Dockerコンテナのネットワーク接続
こちらでは、ネットワーク接続について解説していきます。
Dockerコンテナは、さまざまなネットワーク設定が可能です。
- 外部からの接続を受け付けるコンテナの実行
- コンテナへのアクセスと確認
外部からの接続を受け付けるコンテナの実行
Dockerコンテナを外部からアクセス可能にするには、ホストマシンのポートとコンテナのポートを結びつける必要があります。
以下のようにすれば、ホストマシンのブラウザからコンテナ内で動作するWebサーバーにアクセスできます。
docker run -d -p 8080:80 my-nginx
このコマンドでは、ホストの8080番ポートとコンテナの80番ポートをつなげています。
この状態で、ホストマシンのブラウザからlocalhost:8080
にアクセスすると、コンテナ内のNGINXが応答します。
コンテナへのアクセスと確認
実際にコンテナへのアクセスを試してみましょう。
以下のコマンドをホストマシンのコマンドラインに入力します。
curl localhost:8080
このコマンドを実行すると、NGINXのデフォルトのウェルカムページが表示されるはずです。
詳しくはこちらの記事もご覧ください。
Dockerコンテナの特性把握
Dockerコンテナの一番重要な特性として、”移植性”があります。
なぜならコンテナが、アプリケーションとその依存関係を完全にカプセル化できるからです。
開発環境から本番環境、または異なるOSやハードウェア環境に移行する際に、同じ振る舞いをすることが保証されます。
以下のコマンドは、作成したDockerイメージをDockerHubにアップロードし、ほかのマシンで再利用する例です。
# DockerイメージをDockerHubにプッシュ
docker login
docker tag my-nginx [ユーザ名]/my-nginx
docker push [ユーザ名]/my-nginx
# 別のマシンでDockerイメージをプル
docker pull [ユーザ名]/my-nginx
Linuxとの相性:Ubuntu上でのDocker利用
Ubuntuは広く使われているLinuxディストリビューションで、Dockerとの相性がとても良いとされています。
以下では、Ubuntu上でDockerを使うための手順について説明します。
- UbuntuにDockerEngineをインストールする方法
- Ubuntu上でのDockerEngineの動作確認と権限設定
- UbuntuにDockerComposeを追加する方法
- UbuntuにDockerDesktopをインストールする方法
UbuntuにDockerEngineをインストールする方法
DockerEngineのインストールは、APTパッケージマネージャを使用しておこないましょう。
パッケージを最新にしたうえで、以下を実行してください。
# Dockerの公式GPGキーを追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Dockerのレポジトリを設定
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# Docker Engineをインストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Ubuntu上でのDockerEngineの動作確認と権限設定
インストールが正常に完了したか確認するために、Dockerが正常に動作するかテストします。
sudoなしでDockerコマンドを実行できるように、現在のユーザをdockerグループに追加しましょう。
# Dockerの動作確認
sudo docker run hello-world
# ユーザをdockerグループに追加
sudo usermod -aG docker $USER
UbuntuにDockerComposeを追加する方法
DockerComposeは、複数のコンテナを定義し、管理するためのツールです。
DockerComposeをインストールするためのコマンドは以下のとおり。
# Docker Composeをダウンロード
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 実行可能なパーミッションを追加
sudo chmod +x /usr/local/bin/docker-compose
最新の情報は、以下の記事に書かれている公式サイトなどで確認してください。
UbuntuにDockerDesktopをインストールする方法
Docker Desktopは、macOSとWindowsだけでなく、Ubuntuでも使えるようになりました。
Ubuntuでは使えない、と思っている方も公式サイトへアクセスし、正しいバージョンをインストールしましょう。
まとめ
当記事で解説したことは以下のとおりです。
- Dockerの基本的な定義からインストール
- 基本的な使用方法
- イメージの作成と管理
- ネットワーク接続
Dockerは開発者がソフトウェアを迅速に作成、デプロイ、スケーリングすることを可能にする強力なツールです。
当記事で紹介した手順を使って、Dockerの基本的な使用方法について理解を深めていただければ幸いです。
さらに学びたい方のために、以下のリソースを推奨します。
- Dockerの公式ドキュメンテーション:https://docs.docker.com/
- Dockerの公式トレーニングリソース:https://www.docker.com/docker-community
- 当サイトのDocker記事まとめ:https://itc.tokyo/docker/
Dockerの探索はここからが始まりです。
自身のプロジェクトでDockerを使用して、その強力さと便利さを体験してみてください。