前言
目的是为了学习docker。
编写镜像
dockerfile编写 nginx-alpine-dockerfile
FROM alpine:3.11.3
MAINTAINER ne5 "1309506386@qq.com"
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk update \
&& apk --update add nginx \
&& mkdir /run/nginx/ \
&& mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.default \
&& rm -rf /var/cache/apk/* \
&& rm -rf /root/.cache \
&& rm -rf /tmp/*
CMD ["nginx","-g","daemon off;"]
nginx配置
找到合适的地方编写conf文件和html文件
- conf文件 default.conf
# This is a default site configuration which will simply return 404, preventing
# chance access to any other virtualhost.
server {
listen 80 default_server;
listen [::]:80 default_server;
# Everything is a 404
location / {
root /usr/share/nginx/html/;
index index.html index.htm;
}
# You may need this to prevent return 404 recursion.
location = /404.html {
internal;
}
}
- html文件夹配置,只写了一个index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>nginx-alpine</title>
</head>
<body>
<h1>hello, world!</h1>
<p>nginx in alpine config is ok.</p>
</body>
</html>
启动容器
利用docker-compose来启动一个容器 docker-compose.yml
version: '3.7'
services:
alpine:
build:
context: .
dockerfile: nginx-alpine-dockerfile
container_name: nginx-test
image: nginx-alpine:1.0.0
ports:
- "80:80"
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
- ./html/:/usr/share/nginx/html/
stdin_open: true
tty: true
privileged: true
结语
这是一个半成品。nginx的运行已经没有问题,但是理我想要实现的境界还差许多,本文没注解,因为后续还要改进。