・DockerでPython実行環境を作ってみる
・DockerとVScodeでPython環境構築
※Ubuntu20.04で検証済み
このコマンドによりイメージ作成→コンテナ作成→コンテナ起動
$ docker compose up -d –build
作られたイメージとコンテナの確認
$ docker image ls
コンテナのリストを取得
$ docker container ls
コンテナへの接続
$ docker compose exec python3 bash
Pythonのバージョンを確認
# python –version
Python用のライブラリをインストールする
# python -m pip install numpy
自分のコンピュータ上のPythonファイルを走らせてみる
# ls
# cd opt
# python sample.py 180.0
コンテナの削除
# exit
$ docker compose down
$ docker container ls
=> なにも表示されないこと
再度コンテナを起動したい場合
$ cd docker-python/
$ docker compose up -d –build
あるいは
$ docker compose up -d
コンテナへの接続
$ docker compose exec python3 bash
——————————————————
# useradd elm -m -s /usr/bin/bash
# su – elm
$ python3 -m pip install matplotlib
$ python3 -m pip install japanize_matplotlib
$ python3 -m pip install graphviz
—————————————-
$ python3 -m pip install pandas
$ python3 -m pip install jupyter
$ python3 -m pip install jupyterlab
$ jupyter lab
http://localhost:8888/lab?token=45d28b91ce35883deb3c8699a1f08be419579d8cc15ce28b
##############################################################################
cd
mkdir python3
cd python3
vi Dockerfile
FROM python:3
USER root
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
RUN apt-get install -y vim less
RUN pip install –upgrade pip
RUN pip install –upgrade setuptools
RUN python -m pip install jupyterlab
—————————————–
vi docker-compose.yml
version: ‘3’
services:
python3:
restart: always
build: .
container_name: ‘python3’
working_dir: ‘/root/’
tty: true
volumes:
– ./opt:/root/opt
vi sample.py
import math
import sys
def main():
val = float(sys.argv[1])
print(math.radians(val))
if __name__ == “__main__”:
main()
—————————————–
docker compose up -d –build
コンテナへの接続
$ docker compose exec python3 bash
——————————–
vi json.py
——————————————————————
import requests
# curl https://www.googleapis.com/books/v1/volumes?q=title:地獄の法
key = ‘地獄の法’
url = ‘https://www.googleapis.com/books/v1/volumes?q=’
payload={‘title’:key}
r = requests.get(url, params=payload)
print(r,json())
#func(2,3,4)
——————————————————————
import requests
# curl https://www.googleapis.com/books/v1/volumes?q=title:地獄の法
key = ‘地獄の法’
url = ‘https://www.googleapis.com/books/v1/volumes?q=title:地獄の法’
r = requests.get(url, params=)
print(r,json())
#func(2,3,4)
——————————————————————
import subprocess,json
section=’title’
key = ‘地獄の法’
response = subprocess.check_output([“curl”, “-s”, “https://www.googleapis.com/books/v1/volumes?q=${section}:${key}”])
print(“API response:”, response.decode(“utf-8”))
——————————————————————
import json, requests, japanize_matplotlib
import matplotlib.pyplot as plt
url = ‘https://www.googleapis.com/books/v1/volumes?q=title:地獄の法’
r = requests.get(url)
print(r.text)
data = json.loads(r.text)