让我们尝试使用Docker Compose和Python进行环境设置

首先

我想使用Docker Compose来创建Python环境。假设Docker已经安装完成,请继续操作。

环境

Note: This is the Chinese translation of “environment.”

以下是Docker和Docker Compose的版本。

Docker version 20.10.22, build 3a2c30b63a
Docker Compose version 2.20.3

docker的配置

使用Docker可以轻松自动化本地和远程机器上的环境配置。

文件架构

首先,我们将创建如下所示的文件结构。

docker_python
├── Dockerfile
├── app
│   └── sample.py
└── docker-compose.yml

Dockerfile
Docker文件

Docker自动通过读取Dockerfile来创建Docker映像。
Dockerfile是一个文本文件,用户可以在其中编写创建Docker映像所需的命令。

Dockerfile的编写方式如下。

FROM python:3.9

WORKDIR /app

COPY . .
    • FROM python:3.9

ベースとなるイメージを指定しており、DockerfileはFROMの命令から始めなければならないというルールがあります。

WORKDIR /app

作業ディレクトリの指定しています。作業ディレクトリを指定することで、その後のRUN, CMD, ENTRYPOINT, COPY, ADDなどの命令がそのディレクトリで実行されます。

COPY . .

ファイルやディレクトリをコンテナのイメージにコピーしています。
最初の . はビルドコンテキスト(通常はDockerfileがあるディレクトリ)の中の全てのファイルとディレクトリを指します。
2番目の . はコンテナ内の作業ディレクトリを指します。この作業ディレクトリは、WORKDIR命令で指定されたディレクトリです。もしWORKDIRが設定されていなければ、ルートディレクトリを指します。

docker-compose.yml的意思是Docker组合.yml。

docker-compose.yml是用于定义和执行多个Docker容器的配置文件。
它以YAML格式编写,并单独定义每个服务。

version: "3"
services:
  docker_python:
    container_name: python
    build:
      context: .
      dockerfile: Dockerfile
    working_dir: "/app/"
    tty: true
    volumes:
      - .:/app
    • version:

使用するdocker-composeファイルフォーマットのバージョンを指定します。

build:

Dockerfileのあるディレクトリやビルドの指定します。
context: .

ビルドコンテキストを指定します。. はカレントディレクトリを意味します。

dockerfile: Dockerfile

イメージのビルドに使用するDockerfileの名前を指定します。この場合、カレントディレクトリにあるDockerfileという名前のファイルを指します。

working_dir: “/app/”

コンテナ内の作業ディレクトリを/app/に設定する。

tty: true

擬似TTYを割り当てるもので、ターミナルでコンテナとやり取りしたい場合に便利です。

.:/app

ホストのカレントディレクトリをコンテナ内の /app にマッピングします。これによって開発時にホストのappディレクトリで行った変更が即座にコンテナ内に反映されます。

样本.py

为了确认操作,我们会在sample.py文件中写下以下一行。

print("Hello World!")

构建和启动Docker容器。

通过以下命令创建和启动容器。

cd docker_python
docker compose up -d --build

连接至容器并输出Hello World!

首先,将容器连接起来。

docker exec -it python bash

在连接到容器的状态下执行以下操作

root@57ce8b6f9197:/app# python3 app/sample.py

你好世界将被输出。
现在,我们已经成功在Docker和Python环境下完成了设置。

Hello World!

最后

这次我尝试使用docker-compose和Python进行环境搭建。
由于Docker非常实用,我希望将来能积极地继续使用。

以上是全部。辛苦了。

bannerAds