Dockerの概要
Dockerはアプリケーションと依存関係を移植可能なコンテナにパッケージ化するオープンソースプラットフォームです。コンテナは独立した実行環境を提供し、隔離された状態で動作します。
開発環境の課題
- 開発環境と本番環境の差異による実行エラー
- 複数サーバーへの環境設定の複雑化
- 依存関係を含めたアプリケーション配布の必要性
Dockerの歴史
2010年にdotCloud社で開発が開始され、2013年にオープンソース化。現在はコンテナ技術の標準として広く採用されています。
仮想化技術の比較
| 項目 | Docker | VM |
|---|---|---|
| 起動時間 | 秒単位 | 分単位 |
| リソース使用量 | 少ない | 多い |
| カーネル | ホスト共有 | 専用 |
Dockerの基本構成要素
- イメージ: アプリケーション実行テンプレート
- コンテナ: イメージから生成される実行環境
- レジストリ: イメージ管理リポジトリ
インストール手順(CentOS)
# 既存Dockerの削除
sudo yum remove -y docker-engine docker-client
# 依存パッケージのインストール
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# リポジトリ設定
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Dockerインストール
sudo yum install -y docker-ce docker-ce-cli containerd.io
# サービス起動
sudo systemctl start docker
sudo systemctl enable docker
# 動作確認
sudo docker run hello-world
基本コマンドリファレンス
イメージ操作
# イメージ検索
docker search nginx --filter=stars=5000
# イメージ取得
docker pull nginx:1.21
# イメージ一覧
docker image ls
# イメージ削除
docker image rm nginx:1.20
コンテナ操作
# コンテナ起動
docker container run -itd --name web_server nginx:latest
# 実行中コンテナ表示
docker container ls
# コンテナ停止
docker container stop web_server
# コンテナ削除
docker container rm web_server
コンテナ接続とファイル操作
# 実行中コンテナへの接続
docker container exec -it web_server /bin/bash
# ホスト→コンテナへのファイルコピー
docker container cp config.conf web_server:/etc/nginx/
主要コマンド一覧
| 操作 | コマンド |
|---|---|
| イメージビルド | docker build |
| ログ確認 | docker logs |
| プロセス表示 | docker top |
| 詳細情報取得 | docker inspect |
| ネットワーク設定 | docker network |