下面是关于在Docker容器中运行nginx的完整攻略。
准备工作
在开始之前,你需要安装和配置好以下工具:
- Docker
- Docker Compose
步骤一:创建Dockerfile文件
首先,创建一个名为Dockerfile
的文件,并在其中编写以下内容:
FROM nginx:latest
COPY ./nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
其中:
FROM
指定基础镜像,我们这里使用的是官方的nginx:latest
镜像。COPY
指令将本地的nginx.conf
文件拷贝到容器中的/etc/nginx/nginx.conf
路径下。EXPOSE
指令用于将容器内的80端口映射到主机。CMD
指令用于指定容器启动后要执行的命令,这里我们使用nginx -g 'daemon off;'
命令启动nginx。
步骤二:创建nginx配置文件
在同级目录下创建一个名为nginx.conf
的文件,并编写以下内容:
user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
}
该配置文件指定了Nginx的监听端口为80,以及HTTP请求的根目录。
步骤三:构建Docker镜像
在命令行中进入Dockerfile文件所在的目录下,执行以下命令构建Docker镜像:
docker build -t nginx-demo .
其中,-t
参数指定镜像名称,.
表示使用当前目录下的Dockerfile文件创建镜像。
步骤四:启动Docker容器
执行以下命令来启动创建好的Docker容器:
docker run -p 80:80 --name nginx-demo-container nginx-demo
其中,-p
参数用于将容器内的80端口映射到主机的80端口,--name
参数指定容器名称。nginx-demo
为刚才构建的镜像名称。
示例说明
示例一:修改Nginx默认页面
在同级目录下创建一个名为index.html
的文件,并编写以下内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Nginx Docker Demo</title>
</head>
<body>
<h1>Hello world!</h1>
</body>
</html>
然后将该文件拷贝到容器中的/usr/share/nginx/html
路径下,命令如下:
docker cp index.html nginx-demo-container:/usr/share/nginx/html/index.html
执行该命令后,访问localhost
即可看到Nginx的默认页面已被修改。
示例二:扩大Nginx监听端口
在nginx.conf
文件中将listen
指令修改为:
listen 8080;
然后重新构建Docker镜像,并启动Docker容器:
docker build -t nginx-demo .
docker run -p 8080:8080 --name nginx-demo-container nginx-demo
此时访问localhost:8080
即可看到Nginx已经改为监听8080端口了。
以上就是关于在Docker容器中运行nginx的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker容器中运行nginx - Python技术站