题目
如何构建并运行一个简单的Nginx Docker容器?
信息
- 类型:问答
- 难度:⭐
考点
Docker镜像构建,Docker容器运行,Dockerfile基础
快速回答
构建并运行Nginx容器的核心步骤:
- 创建包含
FROM nginx:alpine的Dockerfile - 执行
docker build -t my-nginx .构建镜像 - 运行
docker run -d -p 8080:80 --name nginx-container my-nginx - 访问
http://localhost:8080验证结果
原理说明
Docker通过读取Dockerfile指令自动构建镜像,基于镜像创建隔离的容器进程。Nginx是常用Web服务器,其官方镜像提供开箱即用的Web服务能力。
操作步骤详解
1. 创建Dockerfile
# 使用官方轻量级Nginx镜像作为基础
FROM nginx:alpine
# 可选:复制自定义配置文件
# COPY nginx.conf /etc/nginx/nginx.conf
# 可选:复制网站静态文件
# COPY html /usr/share/nginx/html最佳实践:
- 使用
alpine标签获取最小化镜像(仅5MB) - 通过
COPY指令添加自定义内容
2. 构建镜像
docker build -t my-nginx .-t:指定镜像名称和标签(默认为latest).:表示Dockerfile所在路径
3. 运行容器
docker run -d -p 8080:80 --name nginx-container my-nginx-d:后台运行(detached模式)-p 8080:80:端口映射(主机8080→容器80)--name:指定容器名称
常见错误
- 端口冲突:若主机8080端口被占用,改用
-p 8081:80 - 镜像不存在:确保构建时的镜像名与运行命令一致
- 文件路径错误:Dockerfile中
COPY路径需相对于构建上下文
验证操作
# 检查容器状态
docker ps
# 查看容器日志
docker logs nginx-container
# 访问测试
curl http://localhost:8080扩展知识
- 镜像分层:Dockerfile每条指令生成一个只读层,
COPY等操作会新增层 - .dockerignore:创建文件排除构建时不必要的文件(如node_modules)
- 容器生命周期:
docker stop发送SIGTERM信号,docker rm删除容器