こんにちはRujuuです。
普段プログラムを書いているとき、別のPCにプログラムを移したら動かなくなった経験はありませんか?
または、過去にどんなライブラリをインストールしたか分からなくなったことはありませんか?
今回はそんな悩みを解決する、エンジニア必須ツール「Docker」のインストール方法を、Mac(M1)・Windowsの両OSの場合に分けて紹介します。
まずは、Mac(M1チップ)へDockerをインストールしてみます。
以下のサイトにアクセスしましょう。
アクセスしたら、Docker Desktopのプルダウンで「Download for Mac – Apple Chip」を選択しクリックします。

しばらくすると「Docker.dmg」がダウンロードされるので、ファイルを開いてDockerのアイコンをApplicationsフォルダアイコンにドラック&ドロップします。
これでインストールされたはずなので、Spotlight検索でDockerを開きます。

もしかすると以下のような2つの警告が出るかもしれませんが、それぞれ開く・OKを選択してください。


警告ウィンドウを全て承認したら、右下の「I accept the terms」にチェックを入れて「Accept」ボタンを押します。
するとDocker Desktopの画面が表示されます!
次に、Windowsでインストールしてみましょう。
先ほど同様、下記リンク先へアクセスします。
今度はWindowsなので以下のように「Download for Windows」をクリックします。

クリックすると「Docker Desktop Installer.exe」がインストールされるので、このファイルをダブルクリックしてインストールを開始します。
インストールが開始する前に「このアプリがデバイスに変更を加えることを許可しますか?」のような通知が出た場合は、許可してください。
少しすると以下のような画面が出ますが、そのままokで大丈夫です。

インストールが完了すると「Close」ボタンが出てくるのでクリックするとインストール完了です!
デスクトップにDocker Desktopというクジラみたいなアイコンが増えているはずなので、クリックします。
すると利用規約の様なものが表示されるので「I accept the terms」にチェックをいれ、「Accept」ボタンをクリックします。

「Get started with Docker in a few easy steps!」と書かれた画面が出た場合は、Startを押してもよいのですがめんどくさいので「Skip tutorial」を選択します。(お好きな方を選んでいただいて大丈夫です)
以上でDockerのインストールが完了したので、実際に簡単にですが使ってみましょう。
お好きな場所に「test」フォルダーを作成して、その中に「Dockerfile」と「docker-compose.yml」、「src」フォルダーを作成してください。

まず、コードエディタやテキストエディタを使用して、Dockerfileを編集していきます。
最初はDockerfileもdocker-compose.ymlの中身も分からなくて当然なので、一旦はこういうものだと思ってください。
これらのファイルの書き方はまた別の記事で紹介します。
# pythonのバージョン指定
FROM python:3
# Linuxに必要なソフトインストール
RUN apt-get update
RUN apt-get -y install locales && localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
# 日本語対応、日本のタイムゾーンへ変更
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm
次に、docker-compose.ymlを書いていきます。
# version指定
version: '3.7'
services:
python:
# 作成するコンテナ名指定
container_name: 'python'
# Dockerfileが置いてある場所を相対パスで指定
build: .
# コンテナ内のワーキングディレクトリを指定
working_dir: '/home/app/'
# コンテナを持続させる設定
tty: true
# ローカルとコンテナ内で、共有するフォルダーを指定
volumes:
- ./src:/home/app/src
これでDockerの設定は完了です。
続いて、「src」フォルダの中に「test.py」ファイルを作成して下記のコードを記述します。
# Hello World!!と出力
print('Hello World!!')
これで必要なファイルは全て揃いました。
さて、お待ちかねのDockerの起動をしていきます。
コマンドプロンプトやTerminalなどのCUIで、作成した「test」フォルダまで移動します。
testフォルダについたら、下記のコマンドでDockerのコンテナを作成します。
docker-compose build
以下のような内容が表示がされれば、コンテナ作成成功です。

次に、作成したDockerのコンテナを下記のコマンドで起動します。
docker-compose up
以下のような表示がされれば成功です。

Dockerが起動したので、早速先程書いたPythonのコードを実行しましょう。
コマンドプロンプトやTerminalの新しいウィンドウ、またはタブを開きます。
そこで下記のコマンドを入力します。
docker exec python python ./src/test.py
コマンドが何をしているかを軽く説明すると、
docker exec python python ./src/test.py
青い下線の部分でコンテナ内でのコマンドを実行するよ〜と指示をしており、黄色い下線の部分で入るコンテナ名を指定しています。
そして最後の緑の下線でpythonを使って./src/test.pyのファイルを実行する指示を出しています。
実行すると「Hello World!!」と表示されるはずです!
上手くPythonを実行する事ができたら、Dockerを停止させてみましょう。
先程の「docker-compose up」したコマンドプロンプト・Terminalへ移動し、Windowsなら「ctrl+c」、Macなら「control+c」を入力します。
すると以下のようにコンテナが停止するので、Docker Desktopの画面を閉じてしまいましょう。

ここまで読んでいただき、ありがとうございました。
上手くDockerを起動させてプログラムを実行できたでしょうか?
もし上手くいかなかった場合や、より良い方法がありましたら優しくコメントいただけると嬉しいです。
次回は、今回のDockerを活用し、Pythonで仕事を自動化する方法について書きます!
ではまたどこかで!