拉取nginx镜像
docker pull nginx
复制代码
创建nginx容器
docker run --name nginx -d \
-p 80:80 -p 443:443 \
-v /usr/local/docker/nginx/html:/usr/share/nginx/html:ro \
-v /usr/local/docker/nginx/logs:/var/log/nginx/:rw \
-v /usr/local/docker/nginx/config/conf.d:/etc/nginx/conf.d:rw \
-d nginx
复制代码
注意点:
- 我并没有在/usr/local/docker/nginx目录下创建html、logs、和/config/conf.d目录,自动映射的
进入nginx容器
docker exec -it nginx bash
复制代码
进入/etc/nginx,并查看nginx.conf配置文件,这个文件是nignx的根本配置文件
cd /etc/nginx
cat nginx.conf
复制代码
nginx.conf内容如下:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf; # 看这里,引入/etc/nginx/conf.d目录下所有的以conf为扩展名的配置文件
}
复制代码
退出nginx容器,在宿主机映射的配置文件目录下新建default.conf并编辑
cd /usr/local/docker/nginx/config/conf.d
vi default.conf
复制代码
default.conf的内容如下:
server {
listen 80;
server_name _; # _代表当前宿主机的地址
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html; # nginx代理的根目录,被我映射到了/usr/local/docker/nginx/html,所以可以在此目录下新建index.html当作默认网页
index index.html index.htm;
}
#代理配置
location /business {
proxy_pass http://business.app.com;
}
#代理配置
location /user {
proxy_pass http://user.app.com;
}
}
复制代码
进入/usr/local/docker/nginx/html,新建index.html
cd /usr/local/docker/nginx/html
vi index.html
复制代码
index.html的内容如下:
welcome to nginx
复制代码
检查nginx配置文件是否正确
// docker检查
docker exec nginx nginx -t
复制代码
文件内容没有问题。
重新加载nginx的配置文件,相当于重启nginx容器
docker exec nginx nginx -s reload
复制代码
访问nginx,端口为80
192.168.57.128
复制代码