1
1

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ってなんですか?」僕「...どっかー?」

Last updated at Posted at 2025-03-02

ってなったら情けないなと思ったので、Dockerについて改めて調べてみました。

Dockerとは何か?

「アプリを動かすための環境ごとまとめて持ち運べる箱」

です。

日高屋を例に挙げさせてください

自分は日高屋の肉野菜炒め定食が好きですが
どこの日高屋に行っても同じ味で最高に美味しい肉野菜炒め定食が出てくるのは
どこの店舗でも同じ定食を作れるように共通の道具・材料・レシピがあるからです

Dockerも同じで、どのPCでも同じ環境で開発、動作できるようにするためには
同じライブラリやバージョンのものが必要です。
それらを全部セットにして箱詰めして、
どこでも同じよう動作、開発できるようにするしているイメージです。

つまりDockerは日高屋の店舗です

Dockerを使う目的

Dockerの目的は下記3点です

  • 環境の違いをなくして、どこでも同じようにアプリを動かす
  • 簡単に開発・テスト・本番で同じ動作をさせる
  • 配布や引っ越しを楽にする

Dockerを使うメリット

メリット 説明
環境がそろう どこで動かしても同じ動作ができる
配布が楽 1つの箱を渡すだけでOK
セットアップが簡単 難しいインストール作業が不要
バージョン違い問題が消える Node.jsやPythonのバージョン差で困らない
テストや本番で再現性が高い 開発環境と本番環境の違いがなくなる

Dockerを使わないと発生する作業

もしDockerを使わなかったら

  • サーバーごとに違う環境設定が必要
    • Node.jsのバージョンが違くて動かない
    • OSが違くて動かない
    • 必要なソフトが入ってなくて動かない
  • インストール手順書を毎回作る必要がある
  • 動かす場所ごとに動作確認が必要
  • 他の人に渡すときに失敗することが多い

つまり、Dockerなしだと
「うちのパソコンでは動くのに…」問題が大量発生します。最悪です。

dockerがないというのは日高屋でいうと
あっちの店舗は豚肉じゃなくて鶏肉使っていて
味は九州の醤油を使っているからちょっと甘いんだよね
みたいなことが起きてしまいます。

ちょっと美味しそうですね。

味はちょっと差があるくらいじゃ大して問題にはならないですが
コードで動いてるものは少しの違いで動かなくなったりしますので
Dockerという存在は非常にありがたいのです

実際にどうやって使うのか?

① Dockerfileを作る

これは「アプリの作り方レシピ」です。

FROM node:20.8.0
WORKDIR /usr/src/app
COPY . ./
RUN npm install
RUN npm run build
EXPOSE 8080
CMD ["npm", "run", "start"]

② Dockerイメージを作る

レシピからイメージ(材料セット)を作ります。

docker build -t gcr.io/プロジェクトID/my-app .

③ イメージをGCPにpushする

作ったイメージをGoogle Container Registry(GCR)やArtifact Registryにアップロードします。

docker push gcr.io/プロジェクトID/my-app

これで、8080番ポートでアプリが動き始めます

まとめ

Dockerを使えば、

  • 環境の差を気にせず
  • どこでも同じように動かせて
  • 配布や引っ越しもラク
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?