お久しぶりです。
今回は、開発でお世話になっているDockerについて解説していきます。
誰でもわかるよう簡単に書くことを目指していますので、初学者の方でも気軽に閲覧していってください。
Dockerとは
Dockerとは、コンテナ仮想化技術を提供するプラットフォームです。
OSやパッケージ、ライブラリなどをコンテナ内に展開・構築し環境を整えることができます。
簡単に言うと、皆さんが自分のPCにwslのubuntuなどを入れて、そこにnumpyやpandasやpytorchを入れて一生懸命環境構築していたものを、まとめて管理してくれるものです。
また、Dockerはバージョンを統一して環境を構築することもできるので、チームでの開発では、開発メンバー全員で環境を統一して進められる点も魅力です。
Dockerイメージ
Dockerについて説明する際に、Dockerイメージについて解説しなければいけません。
Dockerイメージとは、コンテナの設計図のようなもののことです。Dockerイメージを作成して、それに沿ってDockerコンテナが作成されます。
このDockerイメージは、読み取り専用で、変更することはできません。イメージを作成してしまえば、それ以降は全く同じ環境でコンテナを構築できるようになります。
また、Dockerfileというものもあり、これはDockerイメージを作るための設計図です。
設計図を作るための設計図?!
となるかと思いますが、そういうものなのです。
詳しく説明すると、Dockerfileには、使用するOSや使用するライブラリやパッケージをインストールするためのコマンドが書かれています。
プログラミング経験がある方ならわかるかもしれませんが、「pip install numpy」や「apt get ~~」とコマンドを打ってライブラリやパッケージをインストールしていたと思います。
これを必要数記述してあるのがDockerfileです。
Dockerfileの例を下に示します。
# ベースイメージの指定 FROM python:3.9 # 必要なパッケージのインストール RUN pip install torch torchvision # 作業ディレクトリの指定 WORKDIR /app # コンテナ内にファイルをコピー COPY pytorch_program.py /app/pytorch_program.py # コンテナ実行時に実行するコマンド CMD ["python", "/app/pytorch_program.py"]
- FROM python:3.9 ... pythonのバージョン3.9を使用
- RUN pip install torch torchvision ... torchとtorchvisionをインストール
- WORKDIR /app ... 作業ディレクトリをappとする。もしコンテナ内にappディレクトリがなかった場合、自動でappディレクトリが作成されます。
- COPY pytorch_program.py /app/pytorch_program.py ... 実際に実行するpytorchプログラムを、コンテナ内にコピーする。コンテナに入って作ってもいいが、vimやnanoなどのエディタがない場合が多いので、こうするほうがいい。
- CMD ["python", "/app/pytorch_program.py"] ... コンテナ起動時に実行されるコマンドです。この場合、
[ python /app/pytorch_program.py ]が実行されます。
このように、Dockerfile内に、使用するベースイメージと一連のコマンドを記しておくことで、自分の思い通りの環境を立ち上げることができるようになります。
あとはこれをイメージ化して、いつでもコンテナとして起動できるようにするだけです。
Docker Hub
Docker Hubは、コンテナイメージを共有しているプラットフォームです。
ここには、数々のDockerイメージが共有されており、自分で環境構築しなくとも必要な環境をダウンロードして使うことができます。
ここには、大手の会社が配布するイメージや、公式のイメージが多数あるので安心して使えるだけでなく、実際の開発環境と近い状態で自分自身も開発を進められるというメリットがあります。
Docker主要コマンド一覧
以下にDockerコマンドを記します。
コマンド | 説明 |
---|---|
今回は主要なコマンドのみを紹介をしましたが、ほかにも様々なコマンドがありますので、気になる方は各自調べてください。
まとめ
今回はDockerについて簡単に説明してみました。
Dockerを使えば他記事で紹介している環境でも、簡単に作れてしまうのでぜひ習得することをおすすめします。
ではまた。
最後まで閲覧いただきありがとうございます!