#はじめに
Macでpython3を使おうとしたら、見事に環境が破壊されたため、Dockerを導入してコンテナ上でPythonを実行することにする。
筆者の能力
- python3を入れようとして、元環境を破壊してしまうくらいの雑魚さ
- Dockerはかなり前に一度触ったことがあるため、インストールはされている
PC : MacbookPro Early2015
OS : macOS Catelina
自分の頭の中整理くらいに書いていきます。
参考ページ
https://qiita.com/k5n/items/2212b87feac5ebc33ecb
[https://note.com/motchalini/n/nc0486b630b67]
(https://note.com/motchalini/n/nc0486b630b67)
https://qiita.com/chroju/items/ce9cae248cc016745c66
#作業
##イメージの取得
今回はpython3を利用するための環境が欲しいため、python3のイメージをローカルに落としてくる。python3のためのイメージはpython:3らしい
$ docker pull python:3
これでpython3のイメージをダウンロードできた。
Dockerfileの作成&ビルド
最初なので、vimとpipが使えたらいいかなと思い、それだけデフォルトでインストールしておく。
適当なフォルダにDockerfileという名前のファイルを作っておく
FROM python:3
MAINTAINER koji-satoyama
# パッケージのインストールとアップデート
RUN apt-get update && apt-get -y upgrade && apt-get clean
RUN apt-get -y install vim
RUN pip install --upgrade pip
$ docker build -t <イメージの名前> .
すげー長いシステムログと共に、ビルドが成功した。
おそらくvimやらapt-getやらを取っていた模様。
イメージのリストを確認すると、自分の名付けたイメージが作成されていた。
python:3というイメージから派生させて、新しくイメージを作成したというニュアンスだろうか。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<イメージの名前> latest xxxxxxxxxxxx 6 minutes ago 1GB
コンテナの起動
あとは作成したイメージを元にコンテナを起動するのだが、いろいろオプションがある模様。
実行したコマンドは以下。
$ docker run -it --name <コンテナの名前> -v [ホストPCの絶対パス]:[コンテナ上のパス] -w [コンテナ上のパス] <イメージの名前> /bin/bash
コマンドを説明していく。
詳しくは公式ドキュメントを参考にされたい。
http://docs.docker.jp/engine/reference/commandline/run.html
オプション | 意味 |
---|---|
-it | インタラクティブかつ擬似ターミナル割当 |
--name | 作成するコンテナ名の指定。 |
-v | コンテナでホストPCのフォルダをマウントする。次で指定したホストPCのフォルダをコンテナ上に作る |
-w | 初期ディレクトリの指定。コンテナに入ったときの現在ディレクトリ |
python_test | 利用するイメージの名前 |
/bin/bash | コンテナを起動してはじめに実行するコマンド。bashを起動している |
このコマンドで、コンテナの中に入って作業ができる
作業が終わったら
コンテナ内の作業が終わったら、
exit
でコンテナから抜け出す。(他にも方法はあるが、省略)
次からコンテナに入る時は次を実行
# コンテナの再起動
$ docker restart <コンテナの名前>
# コンテナに入る
$ docker attach <コンテナの名前>
終わりに
いろいろ調べながらだと、2時間くらいかかってしまった。
慣れないと覚えられないことも多いので、Dockerは毎日触りたい。