教我怎么用docker,同时启动python3和NGINX环境,创建一个web服务,在Windows电脑上
时间: 2024-06-10 11:10:00 浏览: 8
首先,你需要在你的Windows电脑上安装好Docker。可以在官网上下载并安装。
接下来,我们需要创建一个Dockerfile,用于构建我们的镜像。在一个空白目录下创建一个名为Dockerfile的文件,文件内容如下:
```
# 使用python官方镜像作为基础镜像
FROM python:3
# 设置工作目录
WORKDIR /app
# 将当前目录下的所有文件都拷贝到镜像的/app目录下
COPY . /app
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 暴露80端口
EXPOSE 80
# 启动命令,执行python app.py
CMD ["python", "app.py"]
```
接下来,在该目录下创建一个名为requirements.txt的文件,用于存放Python依赖库:
```
Flask
```
然后,我们需要创建一个名为app.py的Python文件,用于启动web服务:
```
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=80)
```
最后,我们需要创建一个NGINX配置文件,用于将HTTP请求转发到我们的web服务。在该目录下创建一个名为nginx.conf的文件,文件内容如下:
```
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream app {
server web:80;
}
server {
listen 80;
location / {
proxy_pass http://app;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
```
现在,我们已经准备好了所有的文件,接下来就是构建镜像并启动容器了。在该目录下打开终端,输入以下命令:
```
# 构建镜像
docker build -t web .
# 启动容器
docker run -d -p 80:80 --name my_web --network my_network web
```
解释一下这个命令:
- docker build:用于构建镜像,-t参数用于指定镜像名称,.表示Dockerfile所在的目录。
- docker run:用于启动容器,-d参数表示后台运行,-p参数用于将容器的80端口映射到主机的80端口,--name参数用于指定容器名称,--network参数用于指定容器所在的网络,最后是镜像名称。
现在,你就可以在浏览器中访问http://localhost,就可以看到Hello, World!了。