機械の中の学習日誌

社畜によるIT技術メモです。今日も元気です。

機械学習用のUbuntu環境構築メモ - 1 - Dockerインストール編

Azureで立てたUbuntuで、機械学習用の環境を構築したのでメモを残しておく。

Docker CEに、jupyter notebookを入れて使えるようにした。 今回はDockerインストール編

1. 環境の確認

Ubuntuのバージョンを確認

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.10
DISTRIB_CODENAME=cosmic
DISTRIB_DESCRIPTION="Ubuntu 18.10"

アーキテクチャを確認

$ arch
x86_64

uname -a でもよい

2. プロキシ設定

会社のAzure環境なので、外に出るにはプロキシを通さないといけない。 プロキシの設定がないと色々と引っかかるので設定しておく

2.1 環境変数

実行ユーザの.bashrcに以下を追加

HTTP_PROXY=http://(ipaddr):(port)
HTTPS_PROXY=http://(ipaddr):(port)

2.2 apt-get

/etc/apt/apt.confに以下を追加。(apt.confがなかったので自分で作成)

Acquire::http::proxy "http://(ipaddr):(port)";
Acquire::https::proxy "http://(ipaddr):(port)";

2.3 curl

~/.curlrcを作成し、以下を追加

proxy="http://(ipaddr):(port)"

参考 proxy環境下の設定(ubuntu 14.04) - Qiita

3. Docker CEのインストール

Dockerリポジトリからインストールを行う。 参考 https://docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-repository https://qiita.com/tkyonezu/items/0f6da57eb2d823d2611d

3. 1 Dockerリポジトリのセットアップ

1.パッケージインデックス更新

$ sudo apt-get update

2.aptコマンドが、HTTPSリポジトリを使うために必要なパケージをインストールする

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

3.ドッカーの公開鍵をインストール

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

公開鍵のフィンガープリントが9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88となっていることを確認。

以下のコマンドで最後の8文字が0EBFCD88となっている鍵を探す。

$ sudo apt-key fingerprint 0EBFCD88

pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

4.リポジトリ設定

x86_64なので以下のコマンドを実行

$ sudo add-apt-repository ¥
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu ¥
   $(lsb_release -cs) ¥
   bionic test"

*マニュアル通り実行した場合、以下のエラーが発生した。

$ sudo apt-get install docker-ce
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package docker-ce is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'docker-ce' has no installation candidate

コマンド中でも使用している$(lsb_release -cs)Linuxディストリビューション名が表示されるが、 今回使用したcosmic版のstableがまだないためのようだ。(2018.12.04時点)

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

以下を参考にし、前述の通りコマンドを修正したところエラーはなくなった。

apt - Unable to locate package `docker-ce` on a 64bit ubuntu - Unix & Linux Stack Exchange

3.2 Docker CEインストール

1.パッケージインデックス更新

$ sudo apt-get update

2.Docekr CEインストール

$ sudo apt-get install docker-ce

3.3 動作確認

hello-worldイメージを使用して動作確認をするわけだが、その前に、Dockerデーモンが外にアクセスしに行くためにプロキシの設定をしてやる必要がある。

3.3.1 DockerのProxyを設定

1.systemdのdrop-inディレクトリ作成

$ sudo mkdir -p /etc/systemd/system/docker.service.d

2.プロキシ設定

/etc/systemd/system/docker.service.d/http-proxy.confファイルを作成し以下を追記

[Service]
Environment="HTTP_PROXY=http://(ipaddr):(port)/"

3.変更の反映

sudo systemctl daemon-reload

4.Docker再起動

sudo systemctl restart docker

*参考 https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

3.3.2 DockerでHello World

以下のコマンドで、メッセージが表示されることを確認

sudo docker run hello-world

次回は、jupyter notebook入れます。