snovaのブログ

主にプログラミングやデジタルコンテンツについて書きます。最近はPython, Flutter, VRに興味があります。

dockerを使ってmacbookとwindowsの開発環境を揃える

はじめに

私の開発環境は5年ほど前からmacbookメインでしたが、1年ほど前にそこそこいいwindows PCを購入したので、2台を併用してプログラム作成に取り掛かっています。

なぜ、1台に統一しないのかというと、

  • macbookは場所を持ち運べるが、windows PCはデスクトップなので持ち運び不可
  • macbookは簡単な計算には最適だが、ヘビーな計算は不可
  • windows PCはそこそこいいCPUとGPUとメモリを積んでいるので、動作は軽快

最近、apple silicon m1のmacbook airに更新しましたが、やはりスペックの問題からヘビーな計算はデスクトップwindows、気軽にプログラムを作るのはmacbookとなってしまい、当面は2台で開発を進める必要があるのかな、と考えてます。

しかし、2台で開発環境を整えるには課題があり、パッケージ追加やアップデートの度に、環境を揃えなければなりません。

そこで、今回は2台の開発環境をできるだけ簡単に揃えるために、dockerを用いて開発環境を構築します。

目次

mac

流れとしては、

  • docker hubのサインアップ
  • Docker Desktop for Macのインストール
  • dockerコンテナの生成起動
  • コンテナの中を操作

docker hubのサインアップとdesktop for macのインストールはこちらから。 https://hub.docker.com/editions/community/docker-ce-desktop-mac

M1のmacbookpreview版のみに対応しています。 ファイルのダウンロードや最新の情報はこちらから。 https://docs.docker.com/docker-for-mac/apple-m1/

コンテナの生成起動方法は、

docker run -it --name [containername] [imagename] bash

最後の、bashの記述がないと、コンテナ実行後すぐにイメージが起動します。 また、dockerコンテナ起動時にイメージがダウンロードされていなかったら、自動でダウンロードされます。

その他、コンテナを動かすために必要なコマンドをまとめます。

役割 コマンド
稼働コンテナ一覧 docker ps -a
コンテナの起動 docker start [option] [containername]
コンテナへの接続 docker attach [containername]
コンテナの削除 docker rm [option] [containername]
ホストコンピュータからコンテナへファイルを渡す docker cp [original filepath] [containername]:/[container filepath]

例えば、ubunt18.04のイメージからhogeというコンテナを生成するし、起動するとき

docker run -it --name hoge ubuntu:18.04 bash
docker start hoge
docker attach hoge

Dockerfileの作成とビルド

dockerfileは設計書のようなものです。 Dockerfileというファイル名の中に、テキストでコンテナの情報を記述していきます。

例えば、ubuntu18.04のイメージからコンテナを起動して、pythonをインストールし、pythontest.pyというファイルをホスト側のカレントディレクトリからイメージ側のhomeディレクトリにコピーするとき、

FROM ubuntu:18.04

RUN apt-get update
RUN apt-get install -y python3 python3-pip

ADD pythontest.py home/pythontest.py

ファイルを作成したら、Dockerfileをbuildしてイメージを生成します。

docker build -t [imagename] [Dockerfileのファイルパス]

カレントディレクトリにDockerfileがあるなら、

docker build -t imhoge .

ちなみに、[imagename]はすべて小文字でないと、怒られます。

終了したら、docker images -aでイメージが作成されているか確認し、イメージが作成されていたら、runさせコンテナを生成します。

windows

流れとしては、

  • docker hubのサインアップ
  • Docker Desktop for windowsのインストール
  • dockerコンテナの生成起動
  • コンテナの中を操作

ここでは、Docker Desktop for windowsの導入をおこないます。

私の環境はwindows10 Homeだったので、ちょっと前まではDockerの導入ができませんでしたが、最近はHomeでも簡単にDockerを導入できるようになったので、導入することにしました。

方法は簡単で、公式ダウンロードページから、アプリケーションをダウンロードし、手順に乗っ取りインストールを進めます。 途中、WSL2に関するインストールが求められるので、MS公式サイトを参考に、WSL2をインストールします。

WSL2を立ち上げることができたら、Docker Desktopも起動可能となリ、Dockerを起動できれば、Dockerfileから開発環境を揃えることができます。

まとめ

環境を揃えるためには、Dockerは非常に有効なツールです。 コンテナの技術は奥が深く、まだ発展途上なので、私も勉強をかかさずにしたいと思います。

参考文献

Google Play and the Google Play logo are trademarks of Google LLC.