0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

未経験エンジニア転職志望がDockerを完全に理解する!!! ~イメージとコンテナ編~

0
Last updated at Posted at 2026-01-25

参考教材

前回の学習記事

Docker

Dockerの本質

⭐️①全て環境をソースコードで表現(管理)できる
ドキュメント不要

⭐️②不変なインフラ
1回作ったら変更しない、また作り直す場合は0から作成

⭐️③ポータビリティ
どこでも同じように動く

Dockerとは?

アプリケーションをその実行環境を「コンテナ」という単位でパッケージ化し、どこでも同じように動かせるようにするツール

イメージ

まずは動かそう

docker container run hello-world

2026-01-23 9.05の画像.jpeg

「hello-world」イメージのダウンロードの流れ
①Docker Hubから「hello-world」イメージのダウンロード
②そのイメージからコンテナを作成
③コンテナ内のプログラムを実行
④結果を表示

イメージとは?

⭐️『アプリを動かすための全部入りパッケージ』

再利用可能
何度でも同じイメージから実行できる

共有可能
Docker Hubで世界中の人と共有できる

バージョン管理
タグで異なるバージョンを管理

これから学ぶコマンド

2026-01-23 9.49の画像.jpeg

なぜコマンドを学ぶのか?

①docker-compose.ymlの設定が何をしているのか分かる
②トラブル時に原因を特定できる
③細かい操作が必要な時に対応できる

イメージ操作コマンドを学ぼう

イメージ一覧を表示

docker image ls

2026-01-23 9.20の画像.jpeg


イメージのダウンロード

docker image pull alpine
docker image ls

2026-01-23 9.25の画像.jpeg
alpineのタグを指定しないと、latestをいうタグで生成される

2026-01-23 9.28の画像.jpeg


タグでバージョンを指定

docker image pull alpine:3.18
docker image ls alpine

2026-01-23 9.44の画像.jpeg

TAGが変わるとIMAGE IDも変わる


タグの選び方

2026-01-23 9.51の画像.jpeg

⚠️latestは最新という意味だが、いつ更新されるか分からないので非推奨


イメージの削除

不要なイメージはディスク容量を圧迫するので削除しよう

docker image rm hello-world

強制削除
コンテナ使用中エラーの際など...

docker image rm -r hello-world

⚠️本番環境のイメージ削除は本当に気を付ける!!


IMAGE IDを活用する

イメージ名だけではなく、IMAGE IDでもイメージを指定できる

IDの種類
2026-01-23 16.42の画像.jpeg

docker image pull hello-world

2026-01-23 16.39の画像.jpeg

docker image rm ca9

フルID指定でもいいが、一意に特定できれば先頭の数文字でもOK!!

IMAGE IDを使うコマンド
2026-01-23 16.44の画像.jpeg


コマンドを忘れたら

docker image --help

2026-01-23 16.48の画像.jpeg

※ docker image でもコマンド一覧が出る


覚えとおけよ!!なこと

Dockerのコマンドは 「docker [対象] [操作]」 の形式になっている

2026-01-23 17.01の画像.jpeg

⚠️ docker [対象] --help でいつでも使いたいコマンドを調べられる

コンテナ

⭐️イメージを実行している状態

イメージ: 設計図(テンプレート)
コンテナ: 設計図から作成した実態

コンテナの特徴

独立した実行環境
他のコンテナやホストに影響しない

起動が早い
仮想マシンより圧倒的に速い

使い捨て可能
削除しても元のイメージは残る

いくつでも作れる
1つのイメージから複数のコンテナを作成できる

コンテナのライフサイクル

ライフサイクル
→コンテナが作成されてから削除されるまでの一連の流れのこと

ライフサイクルを学ぶ理由

Web開発では、Webサーバーを常にUp(起動中)の状態にしておく必要がある。
ライフサイクルを理解すると、「今のステータスからどう変更すればいいのか?」が分かるようになる。


コンテナの状態

2026-01-23 17.24の画像.jpeg

コンテナを作成する(Created)

docker container create --name my-alpine alpine
docker container ls -a

2026-01-24 10.19の画像.jpeg

docker container ls は Up(実行中)のコンテナだけ表示
docker container ls -a は 全ての状態のコンテナを表示c


コンテナを起動する(Up / Exited)

docker container start my-alpine
docker container ls -a

2026-01-24 10.32の画像.jpeg
Exited(停止中)

⚠️コンテナは実行するコマンドが終わると終了する

alpineイメージは、起動時に/bin/sh(シェル)を実行する。シェルは入力がないと即座に終了するので、コンテナも終了した


🐚シェルとは?

ユーザーとOSの間に立って、コマンドを解釈・実行するプログラミング

ユーザーが入力したコマンド(テキスト)を解釈する
それをカーネルが理解できる形に変換して渡す
カーネルから結果を受け取って、ユーザーに表示する

シェルを体験しよう!

/bin/sh
/bin/sh echo "hello"
/bin/sh ls
/bin/sh exit

2026-01-24 11.00の画像.jpeg

シェルの種類

2026-01-24 11.07の画像.jpeg


docker container run の正体

docker container run は3つの操作を一度にできる便利なコマンドです

2026-01-24 11.10の画像.jpeg


別のコマンドを実行してみよう

docker container run --name my-alpine2 alpine ls
docker container run --name my-alpine2 alpine pwd

2026-01-24 11.17の画像.jpeg

何も指定しないと /bin/sh だが、イメージ名の後にコマンドを指定するとそのコマンドを実行できる

2026-01-24 11.20の画像.jpeg

2026-01-24 11.21の画像.jpeg


-itをつけて起動しよう

-it オプションをつけると、シェルが入力を待ってくれる

docker container run -it --name my-alpine3 alpine

2026-01-24 16.33の画像.jpeg

docker container ls

2026-01-24 16.37の画像.jpeg

※別ターミナルで確認

💡 Up(実行中)だと -a 無しの docker container ls で確認できる


コンテナ内で操作しよう

2026-01-24 16.42の画像.jpeg

コンテナから出る

2026-01-24 16.44の画像.jpeg


ずっと動くコンテナとすぐ止まるコンテナ

2026-01-24 16.58の画像.jpeg

コンテナを停止する(Exited)

nginxコンテナを作成・起動

docker container run --name my-nginx nginx
docker container ls

2026-01-24 18.11の画像.jpeg

コンテナを停止する

docker container stap my-nginx

💡 明示的にexitにすることができる
⚠️ コメントを停止するだけで削除はしない

コンテナを削除する

コンテナを削除する

docker container rm my-alpine

⚠️実行中のコンテナは削除できない

docker container rm my-alpine3

2026-01-24 18.23の画像.jpeg

エラー内容
→ my-alpine3 は実行中だから削除できません

2026-01-24 18.25の画像.jpeg

docker container stop my-alpine
docker container rm my-alpine
docker container ls -a

停止中のコンテナの一括削除

docker container prune

⚠️ 本番環境の削除は本当に気を付ける


ライフサイクルとコマンド

2026-01-24 18.31の画像.jpeg

コンテナを1発で起動する(run)

run は3つのコマンドを自動に行う

2026-01-24 18.34の画像.jpeg


シンプルな実行

docker container run hello-world

2026-01-24 18.36の画像.jpeg


よく使うオプション

バックグラウンドで実行

docker container run -d --name my-nginx nginx
docker container ls

💡 Webサーバーなどずっと動かし続けたいコンテナに使用する


対話モードで実行(-it)

docker container run -it --name my-alpine alpine

2026-01-24 18.47の画像.jpeg


後片付け

docker container stop my-nginx && docker container rm my-nginx

&&
左側の処理が成功したら右側の処理に行く


runオプションまとめ

2026-01-24 18.54の画像.jpeg

実行中のコマンドに入る(exec)

Up(実行中)のコンテナの中に入ってコマンドを実行できる
サーバーの設定確認やログ調査など、実務で頻繁に使用する

①nginxコンテナを起動

docker container run -d --name my-nginx nginx

②実行中のコンテナに入る

docker container exec -id my-nginx /bin/bash

2026-01-25 12.10の画像.jpeg

コマンドを実行

2026-01-25 12.12の画像.jpeg

設定ファイルの確認

全文確認

cat /etc/nginx/nginx.conf

| head -5 ... 最初の5行を確認する 

cat /etc/nginx/nginx.conf | head -5

Upのnginxコマンドの中に入っていた

2026-01-25 12.17の画像.jpeg

シェルを使わないでexecを使う方法

docker container exec my-nginx ls

2026-01-25 12.20の画像.jpeg


execとrunの -it の違い

2026-01-25 12.23の画像.jpeg

コンテナ一覧の見方

docker container ls -a の出力を詳しく確認しよう

docker container ls

2026-01-25 12.39の画像.jpeg


各項目の意味

2026-01-25 12.40の画像.jpeg


CONTAINER IDでコンテナを指定できる

docker container stop 3f10 && docker container rm 3f10
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?