目次
要約(5分解説)
1. Dockerとは?
Dockerは、アプリケーションとその周りの必要な設定(依存関係)を1つにまとめて動かせる「コンテナ技術」を提供するツールです。これにより、開発者はどんな環境(パソコンやサーバー)でも同じようにアプリを動かせます。
- コンテナ技術は、仮想マシン(VM)より軽くて高速です。
- 例えば、チームで作業する際、全員が同じ環境で開発できるので「動く・動かない」といったトラブルを減らせます。
2. Dockerの導入準備
Dockerを使い始めるためには、いくつかの準備が必要です。
- パソコンのスペック
- メモリ8GB以上を推奨
- CPUは複数コアがあると良い
- Windowsの場合、ProまたはEnterprise版が必要です。
- Docker Desktopのインストール
- WindowsとMacユーザーは、公式サイトからDocker Desktopをインストールします。
- Linuxでは、コマンドで直接インストールします(例:Ubuntuなら
sudo apt install docker.io
)。
- 覚えておきたい基本用語
- イメージ:アプリケーションの実行に必要なテンプレート。
- コンテナ:イメージを基に動かした実際の実行環境。
- Docker Hub:世界中の人がイメージを共有するプラットフォーム。
- Dockerfile:カスタムイメージを作るための設定ファイル。
3. Dockerのインストール手順
- Windows
- Docker公式サイトから「Docker Desktop for Windows」をダウンロード。
- インストール後、WSL2(Windows Subsystem for Linux)を有効にするよう指示が出たら、設定します。
- Mac
- Docker Desktopをダウンロードしてインストール。
- M1/M2チップ搭載Macは互換性に注意が必要です。
- Linux
- 例として、Ubuntuでは以下を実行:bashコードをコピーする
sudo apt update && sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker
- サービスが自動起動するように設定しておくと便利です。
- 例として、Ubuntuでは以下を実行:bashコードをコピーする
4. Dockerの基本操作
- 基本コマンド
- docker pull:イメージを取得するbashコードをコピーする
docker pull ubuntu:latest
- docker run:取得したイメージからコンテナを起動するbashコードをコピーする
docker run -it ubuntu /bin/bash
- docker ps:実行中のコンテナを一覧表示bashコードをコピーする
docker ps
- docker stop [コンテナID]:コンテナを停止する
- docker rm [コンテナID]:コンテナを削除する
- docker pull:イメージを取得するbashコードをコピーする
5. DockerfileとDocker Composeの使い方
- Dockerfileを使うと、独自の環境を作成できます。
例:Nginx(Webサーバー)のDockerfiledockerfileコードをコピーするFROM ubuntu:latest RUN apt-get update && apt-get install -y nginx CMD ["nginx", "-g", "daemon off;"]
上記を使って、以下のコマンドでイメージをビルドします。bashコードをコピーするdocker build -t my-nginx-image .
- Docker Composeで複数コンテナの管理も可能です。
例:NginxとMySQLを連携させるdocker-compose.yml
ファイルyamlコードをコピーするversion: '3' services: web: image: nginx:latest ports: - "80:80" db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example
まとめてコンテナを起動するコマンド:bashコードをコピーするdocker-compose up -d
6. よくあるエラーと対処法
- Docker Daemonエラー
- エラー:「Cannot connect to the Docker daemon」
- 解決方法:
sudo systemctl restart docker
で再起動します。
- ポート競合エラー
- エラー:特定のポートが既に使用中で、コンテナが起動できない。
- 解決方法:別のポートを使う、または競合しているプロセスを停止します。
感想とまとめ
Dockerは最初は複雑に感じるかもしれませんが、慣れると開発の効率が飛躍的に向上します。コンテナを使えば、開発から本番まで同じ環境を再現でき、トラブルを減らすことができます。また、Docker Composeを使えば、複数のアプリを簡単に連携させられるため、大規模なプロジェクトにも対応可能になります。
ぜひ、この記事で学んだ基本的なコマンドから始めて、小さなプロジェクトでDockerを実践してみてください。
注釈
- コンテナ技術:必要なプログラムだけをパッケージ化して動かす技術。VMより軽くて高速。
- 仮想マシン(VM):1台のパソコンで、仮想的に別のパソコンを動かす技術。
- 依存関係:プログラムが正常に動くために必要な他のソフトウェアや設定。
- Docker Desktop:WindowsとMacでDockerを使うためのアプリ。
- イメージ:アプリケーションの実行環境をまとめたテンプレート。
- コンテナ:イメージを基に実際に動作する環境。
- Docker Hub:イメージを共有するためのオンラインプラットフォーム。
- Dockerfile:イメージを作るための設定が書かれたファイル。
- Docker Compose:複数のコンテナを一括で管理するツール。