DockerでMacのPython開発環境を構築する

公開日:2019-05-23
最終更新:2019-05-23

はじめに

Mac上でDockerによるPythonの開発環境を構築した。

手順

  1. Dockerのインストール
  2. イメージファイルの入手
  3. 必要に応じてパッケージの入手
  4. Dockerfileの編集
  5. コンテナを起動
  6. 動作を確認
  7. コンテナを破棄

環境

  • MacBook Pro 2018
  • macOS High Sierra
  • zsh

ちなみに、Windowsだと10 Professionalとかじゃないと駄目だったと思う。確か、Hyper-Vが使える環境限定だったような。

Dockerのインストール

オフィシャルから、プラットフォームに応じたインストーラーをダウンロードして実行する。

~  which docker  
/usr/local/bin/docker  
~  docker --version  
Docker version 18.09.2, build 6247962  

イメージファイルの入手

Docker HubからPythonのイメージファイルを入手する。

docker pull python  

対象のコンテナを指定する際、python:3.5などと入力すると、Pythonのバージョンを指定することもできる。が、今回はとりあえず動作だけ確認したかったので指定しなかった。

ダウンロードし終わったら、下記のコマンドを入力してコンテナの有無を確認してみる。

~  docker image ls  
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE  
python              latest              a4cc999cf2aa        11 days ago         929MB  

試しにコンテナを起動

コンテナを起動するにはdocker runを実行する。なお、その直前に実行しているdocker psはDockerのコンテナ情報が表示される。aオプションをつけているのは、起動中でないコンテナも含めて表示させたかったため。

~  docker ps -a  
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES  
~  docker run -it --name hoge python /bin/bash  
[email protected]:/#   

オプションのiとtを指定するとターミナルでコンテナを利用できる。コンテナの利用を終了する場合はexitを実行すればいい。

[email protected]:/# uname -a  
Linux 51c60a70bcf5 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 GNU/Linux  
[email protected]:/# echo "Hello Docker"  
Hello Docker  
[email protected]:/# exit  
exit  

この状態でコンテナ情報を表示させてみる。

~  docker ps  
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES  
~  docker ps -a  
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES  
51c60a70bcf5        python              "/bin/bash"         3 minutes ago       Exited (0) 57 seconds ago                       hoge  

aオプションを付けないとコンテナ情報が表示されないため、すでに起動していないことがわかる。

Dockerfileの編集

Dockerfileの内容は下記のとおり。なお、Docker界隈だとおなじみなAlpineを利用していないのは、Alpineだとビルドできないパッケージがあるらしいから。


FROM python:3-slim-stretch  

#FROM continuumio/miniconda3  

LABEL Name=hoge Version=0.0.1  
EXPOSE 3000  

WORKDIR /app  
ADD . /app  

RUN python3 -m pip install -r requirements.txt  
CMD ["python3", "script.py"]  

ちなみに上記で指定されているscript.pyはprint()を実行するだけの動作確認用。

print("hogehoge")  

コンテナを起動

コマンドを下記のとおり実行する。

~ docker build -t hoge .     
~ docker run -it --name dockertest hoge /bin/bash  

動作を確認

コンテナでコマンドを実行するなどして、動作を確認する。requirements.txtに漏れとかがなければ、正常に動作するはず。

コンテナを破棄

コンテナを破棄するにはdocker rmを利用する。

~ docker rm hoge  
hoge  
~ docker ps -a  
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES  
記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
@webmaster909の技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする