【知識ゼロでOK!】Docker超初心者向けハンズオン!

サムネイル

こんにちは!今回はDockerについての超初心者向けのチュートリアルです!

Docker使ってみたい、使わなきゃいけなくなった、使い始めたけど全くわからない、、
そんな人向けの記事です!

もちろんDockerが何か知らなくてもOK!

Dockerの基本を学んでどんどん使っていきましょう!

目次

Dockerとは?

そもそもDockerとは何でしょう。
Dockerはアプリケーションとその環境を「コンテナ」と呼ばれる単位でパッケージ化して管理するツールです。
これにより、どんな環境でもアプリケーションが一貫して動作するようになります。

もう少し詳しく解説します。

Dockerの基本的な仕組み

Dockerを使うと何が変わるのかを説明するために、使わない場合と比較してみます。

Dockerを使わない開発環境

アプリケーションの開発において、ローカル環境と本番環境の違いが問題となることがあります。例えば、ローカルでは動いているアプリケーションが、本番環境で動かないことがあります。原因としては、異なる依存関係やOSの違いが挙げられます。

ローカル環境でテストした時には動いていたのに本番環境にデプロイしたら動かなくなった。。といったこともあります。

Dockerを使う開発環境

Dockerは、アプリケーションが動作するためのすべての依存関係(ライブラリ、設定、OSなど)を一つのコンテナにまとめます。このコンテナを使えば、開発環境、本番環境、どこでも同じ挙動が保証されます。

何となくDockerを使うメリットがわかったでしょうか。

ここからはDockerの基本的な構成要素を解説します。

Dockerの構成要素

Dockerイメージ

  • アプリケーションを動作させるテンプレートのようなもの
  • OSや作成したプログラム、設定ファイルなどが含まれる

Dockerコンテナ

  • Dockerイメージを元に動作する実行環境。
  • Dockerイメージがハンバーグのレシピとすると、コンテナはハンバーグ

Dockerfile

  • Dockerイメージを作成するための設定ファイル
  • 必要なOS、ライブラリ、アプリケーションコードのコピー手順などを記述する

Docker Hub

  • Dockerイメーを共有するプラットフォーム
  • 自分で作成したイメージを共有したり、他の人のイメージを利用したりできる

Dockerの利点

先ほども少し説明しましたが、Dockerを使う利点を並べてみます。

環境の一貫性

ローカル開発環境、テスト環境、本番環境で同じコンテナを使用するため、環境による問題が起きにくいです。

軽量性

DockerコンテナはホストOSのカーネルを共有するため、仮想マシンよりもリソースの消費が少なく、高速です。

移植性

DockerはDockerがインストールされていればどんなOSでも利用可能です。

効率的なリソース管理

必要な部分だけを独立して動かすので、リソースに無駄が生じません。

ここまでDockerについての基本的な説明をしてきました。ここから実際にDockerを使っていこうと思います!

Dockerを始めるための準備

必要なツールとインストール

まずはDocker Desktopをインストールします。
公式サイトからダウンロードしてインストールしてください。

インストールが終わったらdockerが正しくインストールできるかを確認しましょう。ターミナルで次のコマンドを実行してdockerのバージョンが表示されればOKです。

docker --version

Dockerプロジェクトを作ってみる

dockerがインストールできたので実際に使っていきます。簡単なdockerプロジェクトを作成して試してみましょう。

1. 任意の作業用ディレクトリを作成

mkdir docker-tutorial

cd docker-tutorial

Dockerfileを作成

Dockerfileを作成して以下の内容を記述します。

# ベースイメージとしてPythonを使用
FROM python:3.9-slim

# アプリケーションディレクトリを設定
WORKDIR /app

# 必要なファイルをコピー
COPY . /app

# 必要なPythonライブラリをインストール
RUN pip install flask

# サンプルアプリケーションを指定
CMD ["python", "app.py"]

app.pyの作成

app.pyを作成して以下の内容を記述します。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, Docker!"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

Dockerイメージのビルド

Dockerにログイン

イメージのビルドはdockerにログインしていないと失敗するのでまずはログインします。
ログインしている人はスキップしてください!

docker login -u <username>

<username>はDocker Desktopをインストールする際に登録したものです。
実行するとパスワードを聞かれるので、こちらもDocer Desktopインストールの際に設定したものを入力してください。
ターミナルで入力しても空欄のままなので間違えないように入力してEnterを押します。

成功すると”Login Succeeded”と表示されます。

ログインできたらビルドしましょう!

以下のコマンドを実行してイメージをビルドします。

docker build -t hello-docker .

-t hello-dockerはイメージにhello-dockerという名前をつけています。「.」はカレントディレクトリのDockerfileを使用することを意味しています。

ビルドに成功するとDocker DesktopのImagesにhello-dockerイメージが表示されます。

コンテナを操作する

1. コンテナの起動

docker run -p 5000:5000 hello-docker

2. ブラウザでアクセス

ブラウザでhttp://localhost:5000にアクセスします。

hello, Docker!と表示されていれば成功です!

3. コンテナの停止

別のターミナルで以下のコマンドを実行してください。

docker ps

コンテナIDを確認し、以下コマンドでコンテナを停止します。

docker stop <コンテナID>

まとめ

今回はDockerの始め方を簡単に解説しました。イメージのビルド、コンテナの起動、コンテナの停止はできるようになったはずです。

ここからdockerを活用して開発をしてみるとより理解が深まると思います!ぜひ挑戦して見てください!

⇩の記事で実際に開発をしています!

tenjiprogramming
20代エンジニア。
メインで使用している言語はJava/JavaScript/TyoeScript/react/C言語
AWSなどクラウド周りも経験あり。
楽しいをモットーに記事を書いています。
Noteではサンプルコード付きのゲームの作り方など様々な内容を公開しています。
そちらも是非ご覧ください!
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次