Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

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

$
0
0

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

結論

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

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


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>