サイトアイコン ITC Media

DockerをLinuxから操作|コマンド付きでわかりやすく解説

(最終更新日:2023年8月)

✔当記事は次のような方を対象としています

「DockerをLinux環境でどのように使用するのか知りたい」
「DockerのLinuxコマンドラインの基本的な使い方について学びたい」
「具体的なDockerとLinuxの活用例を見つけたい」

✔当記事で提供する情報

当記事では、DockerとLinuxの基本的な使い方から、具体的な活用方法まで、実例を通じて詳しく解説します。

ぜひ最後までご覧ください。

筆者プロフィール

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Dockerの基本

こちらでは、Dockerとその重要性について紹介します。

Dockerについて理解することで、効率的なソフトウェア開発と運用が可能です。

Dockerとは

Dockerは、コンテナという技術を用いてアプリケーションの実行環境をパッケージ化するプラットフォームです。

この技術により、開発環境と本番環境の間で発生する「動作環境の違い」による問題を解決できます。

あるアプリケーションが特定のライブラリやミドルウェアに依存している場合でも、それらを含むコンテナを作成すれば、どの環境でも同じようにアプリケーションを実行できるのです。

コンテナソフトウェアとしてのDockerの役割

コンテナソフトウェアであるDockerは、アプリケーションとその依存関係を一緒に包んで、隔離された環境(コンテナ)で動作させる役割を果たします。

Dockerによる効果は以下のとおりです。

Dockerのインストール方法

こちらでは、Dockerをインストールするための前提条件と手順について見ていきましょう。

Dockerを正しくインストールすることで、効果的なコンテナ化の利点を享受できます。

Dockerのインストールの前提条件

Dockerをインストールするためには、いくつかの前提条件が必要です。

一般的には、以下のいずれかを実行していることが必要です。

Virtualization Technology(VT)が、BIOSで有効になっていることも必要となります。

Dockerのインストールの手順

WindowsにDocker Desktopをインストールする手順は以下の通りです。

コマンドプロンプトまたは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上でのパッケージリストの更新

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が起動するコンテナイメージの作成

コンテナのイメージ化は、開発作業の効率化を促します。

なぜなら一度設定した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をインストールする方法

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を使用して、その強力さと便利さを体験してみてください。

モバイルバージョンを終了