8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker上で環境を作るメリット

Last updated at Posted at 2019-05-27

Docker上でミニマムPython環境を作ってみました。
その中で感じた、Docker上で環境を作るメリットを整理しました。

結論

Dockerとは

ざっくり説明すると以下のような感じです。
・軽量で高速に起動、停止などが可能な仮想化基盤
・ミドルウェアのインストールや各種環境設定をコード化して管理できる

今回作った環境(DockerImage)

OSはUbuntu18.04を入れました。
dockerのubuntuイメージは本当に最低限のものしか入ってないので、
とりあえずvimをインストール。
(そのままだとviコマンドすら効きません…)

さらに、言語python3をインストール、
python3のパッケージマネージャとしてpip3も入れてます。

  • OS:

  • Ubuntu18.04

  • インストールしたパッケージ:

  • Python 3.6.7

  • pip 9.0.1

  • Vim 8.0

コンテナ内で実行したコマンド一覧

apt update
apt upgrade
apt install vim
apt install python3
apt install python3-pip --fix-missing

Docker上で環境を作るメリット

移植が圧倒的に楽

もはや言い尽くされた感もありますが、
dockerコンテナとして構築することで
使用するPCにdockerさえ入っていれば
OSやライブラリ、ミドルウェアを意識せずにその環境を使えるのがメリットです。

やろうと思えば、
会社の端末、家の端末、出先の端末、
どこでも同じインフラ環境で作業出来るのはとても便利です。
マシンサーバーとしてのOSは意識しなくて良いのが嬉しいです。

docker cpコマンドでコンテナ-ホスト間のファイルのやりとりも簡単に出来ます。
(マウントポイントとか作らなくて良いんですね)

環境構築のやり直しが出来る

環境作ってる時に想定外のエラーが起こることは多々あります。
・ ライブラリのインストールに失敗して中途半端に何かが入っちゃうとか…
・ パッケージが足りないと言われて、パッケージインストールしたのに結局上手くいかないとか…
・ 何かをインストールしたせいで、それまで上手くいってたものまで動かなくなったとか…
(考えただけで頭が痛くなりますね…。)

そんな時に、dockerであれば
exitコマンドでコンテナから抜けて、
ごちゃごちゃした環境をリセット出来るのはとても有り難いです。

ここでは説明を割愛しますが、
こまめにdocker commitしておけば、
exitしてもcommit時点の環境から作り直せるので
その点でも環境構築のコストは大幅に削減出来ます。

不要なもの 運用上必要なものを入れなくて良い

例えば、pythonをインストールして使うとき、
python自体のバージョン管理として
virtualenvとかpyenvを入れて運用することが多いですが、
docker上で環境を作る時はそれらのミドルウェアを入れなくて良いと(個人的には)思っています。

他のバージョンのpythonを入れたいときは
別のコンテナやイメージを作れば解決しますからね。

簡単な構成にしておくことは
環境を作る上でも、運用上でもメリットは大きいです。
(少なくとも、ある日突然、pyenvコマンドが効かない…みたいな絶望からは距離をおくことが出来るんじゃないですかね)

まとめ

dockerコンテナ毎に様々な環境を、独立して作れるので
ややこしいライブラリを気にせず入れたり、
各言語、ライブラリの最適化環境を作ったりできるのが嬉しいですね。

環境構築コストも軽減できるので、気軽に試せて良いと思います。

8
8
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
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?