1
6

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 Tools』を使ってPython3(Anaconda)の実行環境を構築してみる

Last updated at Posted at 2017-12-03

概要

ノートPCに『Docker Toolbox』をインストールして、その上に『CentOS』を構築。『CentOS』上にPython3の開発環境を作ります。勉強用途なので、まずは手間暇かけずに、動かせる環境を作ることを目標とします。

前提

項目 スペック
CPU CORE i3 2.40GHz 64bit
MEM 4GB RAM
OS Windows10 HOME

『Docker Tools』をインストール

DockerのサイトからDocker Toolboxのインストーラーをダウンロードします。(ご利用の環境に合わせて、適宜選択してください)

ダウンロードしたら『Docker Toolbox』のインストーラを使用して、必要なコンポーネントを一式インストールします。インストールの途中、「Select Additional Tasks」という画面があるのですが、ここで最下部にあるチェックボックスはONにする必要があるようです。

-[x] Install VirtualBox with NDIS5 driver[default NDIS6]

** 参考 **
Failed to open/create the internal network Vagrant on Windows10

Dockerを起動

正常にインストールが終わると、デスクトップに「Docker Quickstart Terminal」という名前の付いたアイコンがあるので、ダブルクリックで実行。すると、Dockerが起動して、Dockerホストの仮想マシンに接続した状態でウインドウが出てくるはずです。(Dockerのシンボルであるイラストのアスキーアートが表示されるまで暫く待つ)

コマンドの入力待ちになったら起動完了。

まずはお決まりの"Hello World"をやってみます。

$ docker run hello-world

エラーが出なければ、これで無事にDocker環境が整いました。

** 補足 **
Dockerコマンドについては以下を参考にさせて頂きました。
大変分かりやすくて勉強になりました。
後ほど使用するCentOSのイメージをダウンロードするコマンドをはじめ、コンテナの起動・停止コマンドなどは、こちらを合わせてお読み頂くと、より理解が深まるかと思います。

docker コマンドチートシート
docker コマンド一覧
Docker コマンドメモ

『CentOS』を準備

それでは、先ほど構築したDocker上に『CentOS』を構築してみたいと思います。今回は、最新バージョンを取得します。

$ docker pull centos:latest

下記が表示されれば、無事にダウンロードが完了。

Status: Downloaded newer image for centos: latest

dockerコマンドを使って確認してみましょう。

$ docker images

"REPOSITORY" に "centos" が表示されていればOK
では『CentOS』を起動してみましょう。

$ docker run -itd --name centos centos /bin/bash 

エラーが出なければ問題なく起動しているはずです。
dockerコマンドを使って確認してみましょう。

$ docker ps

正常に起動していれば "CONTAINER ID" が振られて、先ほど実行した "centos" が表示されるはずです。ここまでで、ひとまず『CentOS』の環境構築が出来ました。思っていたよりもスムーズに、ここまで来れて一安心。

Python3(Anaconda)の実行環境を構築

それでは目標であったPython3の実行環境を構築したいと思います。今回はあらかじめ主要なライブラリが準備済みのPythonディストリビューションである "Anaconda" をインストールしたいと思います。もちろん、Pythonの公式サイトからインストールして、必要なライブラリを個別にインストールしても良いのですが、今回は "極力簡単に" を目標に進めたいと思います。

まずは、先ほど起動した "CentOS" のコンソールに接続します。

$ docker attach centos

コマンドプロンプト部分が変わりました。無事に繋がったようです。

[root@******** /]# 

今回は Pythonのバージョン管理ツールである "pyenv" を使うことにします。 "pyenv"を使うことで、1台のマシンに複数のバージョンを導入して、使い分けることが出来るため、Python2を使いたいときに便利だと思います。

** 補足 **
"pyenv"については多くの紹介サイトがありますので、詳細は割愛致しますが、今回は下記を参考にさせて頂き、勉強させて頂きました。また、"pyenv"の他にも "virtualenv" というつーるもありますので、ご自身の環境に合わせて使い分けて頂ければと思います。

pyenvまとめ

早速 "pyenv"をインストールしたいのですが、その前に "git" が使えるようにしたいと思います。

# yum install git

"Complete!"と表示されてエラー無く終わったら、次のコマンドで "git" がインストールできていることを確認します。

# git --version

インストール時点のバージョンが表示されるはずです。これで無事にインストールできました。それでは "pyenv"をインストールしていきます。

# git clone https://github.com/yyuu/pyenv.git ~/.pyenv

エラーも出ずプロンプトが戻ってきましたので、正常にインストールできたようです。今回は "root" ユーザでここまで作業をしてきましたので、私の環境では以下にインストールされています。

# /root/.pyenv

"pyenv" 経由でインストール可能な "Python" の一覧を表示してみましょう。

# /root/.pyenv/libexec/pyenv install --list

タイトルの通り、今回は "Anaconda" をインストールしますので、リストの中から最新バージョンを確認します。私がインストールした時点(2017/08/27)の最新は以下の結果でした。

anaconda3-4.4.0

それでは最新バージョンを以下のコマンドでインストールします。

# /root/.pyenv/libexec/pyenv install anaconda3-4.4.0

あれ?ここまで来て初めてエラーが出ました。BUILD FAILEDです…。ログを見るとディレクトリが見つけられなかったようです。確かに調べてみるとログに書かれているパスのディレクトリが存在しない。一旦手動でディレクトリを作成して、インストールを再実行してみました。

# mkdir /root/.pyenv/versions/anaconda3-4.4.0
# /root/.pyenv/libexec/pyenv install anaconda3-4.4.0

※エラーの原因は継続して調査中。

"pyenv" を使ってインストールした "Python"のバージョンを確認してみます。

# /root/.pyenv/libexec/pyenv versions

先ほどインストールした "anaconda3-4.4.0" が表示されましたが、"*" 印が付いていません。デフォルトで "system" 側が適用されているようです。

* system
  anaconda3-4.4.0

以下のコマンドでバージョンを切り替えます。

# /root/.pyenv/libexec/pyenv global anaconda3-4.4.0

もう一度、先ほどのコマンドを使ってバージョンを確認します。

# /root/.pyenv/libexec/pyenv versions

今度は "anaconda3-4.4.0" 側に "*" 印が付きました。これでデフォルトのバージョンが "anaconda3-4.4.0" になりました。

   system
*  anaconda3-4.4.0

以上です。

1
6
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
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?