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のmacbookはpreview版のみに対応しています。 ファイルのダウンロードや最新の情報はこちらから。 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は非常に有効なツールです。 コンテナの技術は奥が深く、まだ発展途上なので、私も勉強をかかさずにしたいと思います。
参考文献
- https://qiita.com/wMETAw/items/34ba5c980e2a38e548db
- https://qiita.com/Sojiro_Otsubo/items/b5323f468a13a55d9439
- https://tech-lab.sios.jp/archives/19191
- https://blauthree.hatenablog.com/entry/2019/07/13/000839
- http://www.tohoho-web.com/docker/dockerfile.html
- https://qiita.com/zaki-lknr/items/db99909ba1eb27803456
- https://docs.microsoft.com/ja-jp/windows/wsl/install-win10