機械学習勉強用に構築したLinux環境でDockerを使えるようにしていくよ
Linux環境は最新のUbuntu 24.04 LTSだよ
本題
機械学習やプログラムの勉強をしていると、使用する開発言語やフレームワークに合わせた環境構築を行う必要があります。また、複数の教材を参考に様々な開発を行っていると使用している環境のバージョンや依存がぐちゃぐちゃになってしまい、勉強どころではなくなることも多々あります。
機械学習やソフトウェア開発の勉強をしたいのにその環境構築で時間がかかってしまいやる気が削がれ、結局手を付けなくなることを何度経験したことか。
今回はOS上に仮想環境を構築するDockerの環境構築をしてみました。
環境構築が嫌なのに、ここで環境構築の記事を書くのかい
Dockerとは
Dockerとはコンテナ型の仮想環境を構築するためのツールです。Dockerを使うと、開発者は面倒な環境構築や管理を行わずに、どこでもアプリケーションを構築、共有、実行、検証できるようになります。
コンテナを配布することにより、異なる場所でも同じ環境で開発や運用を行うことができます。
WindowsやMac、はたまたLinux上に仮想環境を構築しその上で開発を行います。
コンテナには、アプリケーションやフレームワーク、ベースとなるオペレーティングシステムに至るまで、コードを実行するために必要なものがすべて用意されています。
Dockerのインストール手順
dockerを使用する(インストールする)環境はUbuntu 24.04 LTSです。
今回インストールするのはdocker Engineとなります。Docker Desktop for Linuxもありますが、本記事執筆時(2024/05/24)では、Docker Desktopは最新のUbuntu 24.04 LTSにおいてはまだサポートされておらずDocker Desktopの起動に失敗するようです。(試してはいません)
Docker本体はUbuntu 24.04 LTS に対応しています。
まず最初にDockerが入っていないことを確認します。
ターミナル上で以下を叩くとCommand 'docker' not found
が出ると思います。
Dockerのバーションが表示されたら(すでにインストールされている場合は)この投稿にいいねをしてそっとWebブラウザを閉じてください。
ターミナルを見ればインストールのコマンドが書いていますが、ひとまずはDocker公式のインストール方法を参考にDocker Engineをインストールしていきましょう。
Dockerのaptリポジトリのセットアップ
まず最初に以下コマンドで必要なパッケージのインストール及びDocker GPG keyの追加を行います。
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
次にリポジトリをAptソースに追加します
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
dockerパッケージをインストール
以下のコマンドでパッケージをインストールします。
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
ここまででDockerを入れることができると思います。
バージョン確認をすると正しくインストールされていると思います。
Docker Engineを用いて簡単なDockerイメージを起動してみる。
Docker Engineが正しく動くのを確認するため、hello-worldイメージ
をd
sudo dockeer run hello-world
Docker Groupへの追加
ここまででDockerをインストールしDocker Engineを用いて実行をすることができました。
しかし今のままでは毎回sudo
で実行する必要があります。
Dockerを立ち上げるたびに毎回sudo
を頭につけdockerコマンドを打つのも面倒なので、ユーザをdockerグループに所属させます。
まず、現状のグループの確認を行います。自分はインストールと同時にグループが作成されていましたが、なければ自分で作成します。
cat /etc/group | grep docker
# docker:x:984: //(インストールと同時に追加されていた)
// グループがない場合
sudo groupadd docker
ユーザーをDockerグループに追加します。
sudo usermod -aG docker $ユーザー名
設定を反映させるため、一旦ログアウトしサイドログインして`sudo`を使用せずDockerを操作できるか確認します。
これで無事にDockerが動かせるようになりました。