【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コマンドdocker-composeコマンドdocker build [build context]docker-compose builddocker run [image]docker-compose updocker psdocker-compose psdocker exec [container]docker-compose exec [service]

方便指令

构建并运行

docker-compose up --build

停止并删除

docker-compose down

只有通过命令行才能执行Python,如果能够通过PyCharm或者VSCode进行执行会更方便。

广告
将在 10 秒后关闭
bannerAds