目次
✅ 概要
Dockerは、アプリケーションを効率的かつ軽量に動かすためのコンテナ技術です。この記事では以下をわかりやすく解説します。
- Dockerの導入とネットワーク構成
- コンテナの起動・停止・接続操作
- コンテナイメージの取得・作成・管理
🧩 Dockerの導入とネットワーク構成
📦 インストール例(Ubuntu)
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
🌐 ネットワークの構成
Dockerは起動時にいくつかのネットワークを作成します。
| モード | 説明 |
|---|
| bridge | デフォルト、NAT方式 |
| host | ホストのネットワークを共有 |
| none | ネットワーク無し |
| overlay | マルチホスト間ネットワーク(Swarm用) |
ポート変換の例(ホスト:8080 → コンテナ:80)
docker run -d -p 8080:80 nginx
フラットL2ネットワーク(macvlan)
docker network create -d macvlan \
--subnet=192.168.100.0/24 \
--gateway=192.168.100.1 \
-o parent=eth0 macvlan_net
▶️ Dockerコンテナの基本操作
コンテナの起動
docker run -it --name mycontainer ubuntu bash
停止・再起動・削除
| 操作 | コマンド例 |
|---|
| 停止 | docker stop mycontainer |
| 強制停止 | docker kill mycontainer |
| 再起動 | docker restart mycontainer |
| 一時停止 | docker pause mycontainer |
| 再開 | docker unpause mycontainer |
| 削除 | docker rm mycontainer |
実行中のコンテナ確認・状態確認
docker ps # 実行中一覧
docker stats # リソース使用状況表示
🔗 コンテナへの接続と操作
| 操作内容 | コマンド |
|---|
| 端末へアタッチ | docker attach mycontainer |
| 別プロセスの実行(非干渉) | docker exec -it mycontainer bash |
attachは終了するとコンテナも停止します。execの方が安全です。
🗂️ コンテナイメージの管理
レジストリとのやり取り
| 操作 | コマンド |
|---|
| イメージ取得 | docker pull ubuntu:20.04 |
| イメージ一覧 | docker images |
| イメージ削除 | docker rmi ubuntu:20.04 |
| イメージのインポート | docker import url_or_file myimage:tag |
🛠️ Dockerfileによるイメージ作成
例:Node.jsアプリのDockerfile
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "index.js"]
ビルドと実行
docker build -t mynodeapp .
docker run -p 3000:3000 mynodeapp
コンテナからイメージ化(状態保存)
docker commit mycontainer saved_image:latest
📝 まとめ
| 機能 | コマンド/概念 |
|---|
| コンテナ実行 | docker run, docker ps |
| コンテナ管理 | stop, restart, pause, rm |
| イメージ管理 | pull, rmi, images, build |
| コンテナ接続 | exec, attach |
| Dockerfile作成 | docker build, commit |
| ネットワーク設定 | -p, bridge, macvlanなど |
コメント