【Docker】入门:启动可以运行Python的容器(使用docker-compose)
首先
我正在Udemy上学习Docker的过程中,希望能够输出学习进展。
这次,我想要分享一下中间的结果。
我想使用docker-compose来启动一个可以运行Python的容器。另外,我希望能够共享文件系统,从而使得Python文件和CSV数据可以在主机PC上进行管理。
生態系统
-
- Windows10
- Docker version 24.0.6
每个文件 (gè
以下の3つのファイルを同じフォルダ階層に作成します。
Docker文件
本次我们将使用Python基础镜像,并从requirements.txt文件安装所需的库。
FROM python:3
RUN apt-get update
WORKDIR /work
COPY requirements.txt ./
RUN pip install -r requirements.txt
CMD ["/bin/bash"]
需求清单.txt
暂且安装numpy和pandas。
numpy
pandas
docker-compose.yml的同义词为docker组合.yml。
docker-compose.yml文件在以下情况下使用。
-
- docker runコマンドが長くなるとき
- 複数のコンテナをまとめて起動するとき
構成如下所示。
-
- 今からDocker composeを書きます宣言
service1
service1のパラメータ
service2のパラメータ
service2
service2のパラメータ
service2のパラメータ
以下のdockerコマンドをdocker-compose.ymlに書きます。
docker build .
docker run -it -v .:/work [イメージ]
version: '3'
services:
work-python:
build: .
volumes:
- '.:/work'
tty: true
stdin_open: true
文件系统的共享
volumes:
- '.:/work'
在中文中,该句可以如下表达:
使用docker run命令,其中的 -it 部分如下 ↓
tty: true
stdin_open: true
主要的.py
import pandas as pd
df = pd.read_csv('train.csv')
print(df)
火车数据文件.csv
Docker composeを使ってコンテナを起動
作业文件夹的内容如下。
root/
├Dockerfile
├requirements.txt
├docker-compose.yml
├train.csv
└main.py
rootディレクトリに移動し、docker-compose up -dを実行します。
今回はバックグラウンドで動かしておきたいため、デタッチドモード-dを引数に指定します。
docker-compose up -d
使用docker-compse exec [service] bash命令进入容器。
docker-compose exec work-python bash
我在ls命令的结果中确认了文件系统是共享的。
root@626584394f9f:/work# ls
Dockerfile docker-compose.yml main.py requirements.txt train.csv
main.pyを実行できることも確認します。
root@626584394f9f:/work# python main.py
id Age Gender T_Bil D_Bil ALP ALT_GPT AST_GOT TP Alb AG_ratio disease
0 0 60 Male 2.9 1.3 170.9 42.1 37.1 5.5 2.9 1.01 1
1 1 28 Female 0.7 0.1 158.8 26.0 23.9 6.4 3.7 1.36 0
2 2 60 Male 23.1 12.5 962.0 53.0 40.9 6.8 3.3 0.96 1
3 3 20 Male 1.0 0.5 415.9 33.9 39.0 7.0 3.8 1.31 0
4 4 44 Female 0.6 0.3 152.9 40.9 42.0 4.5 2.1 1.04 0
.. ... ... ... ... ... ... ... ... ... ... ... ...
886 886 31 Male 0.7 0.3 164.2 30.0 29.0 6.2 3.0 1.07 0
887 887 57 Female 1.0 0.3 130.1 23.9 25.0 6.9 4.1 1.28 1
888 888 54 Female 23.5 12.7 574.0 43.1 47.0 7.2 3.4 0.84 1
889 889 24 Male 1.2 0.4 130.0 23.2 42.0 8.1 3.9 0.87 1
890 890 57 Male 1.9 0.8 270.8 40.8 50.0 6.0 2.8 0.94 0
[891 rows x 12 columns]
Docker命令和Docker Compose命令
方便指令
构建并运行
docker-compose up --build
停止并删除
docker-compose down
只有通过命令行才能执行Python,如果能够通过PyCharm或者VSCode进行执行会更方便。