例子场景
假设有一个简单的Python应用,想要在容器内运行。代码在宿主机上的一个目录中,希望能够在宿主机上编辑这个代码文件,然后在容器内立即看到这些变化。
目录结构
假设项目目录如下:
/home/user/myapp/
│
├── docker-compose.yml
└── app.py
app.py是Python应用代码。
docker-compose.yml 文件
version: '3'
services:
python-app:
image: python:3.8
volumes:
- ./app.py:/app/app.py
command: python /app/app.py
解释
-
version: '3': Docker Compose 文件的版本。 -
services:: 定义了一个服务。 -
python-app:: 这个服务的名称是python-app。 -
image: python:3.8: 使用官方的 Python 3.8 镜像。 -
volumes:: 定义卷映射。./app.py:/app/app.py: 将宿主机上的app.py文件映射到容器内的/app/app.py。这样在宿主机上修改app.py后,容器内的文件也会同步更新。
-
command: python /app/app.py: 当容器启动时,运行命令python /app/app.py来执行 Python 脚本。
使用此 docker-compose.yml
-
在项目目录(
/home/user/myapp/)下运行以下命令启动容器:docker-compose up -
Python 脚本会在容器内运行,并输出结果。
-
如果在宿主机上编辑
app.py文件,这些更改会立即反映在容器内,并且可以重新启动容器以运行更新后的代码。
总结
这个例子展示了如何在 docker-compose.yml 文件中使用卷映射,将宿主机上的一个简单文件与容器内的文件关联起来,使得可以轻松地在宿主机上编辑代码并在容器内运行。
1万+

被折叠的 条评论
为什么被折叠?



