拉取镜像启动容器
获取nginx镜像列表
docker search nginx
拉取nginx镜像到本地,此处我们获取排名第一的是官方最新镜像
docker pull nginx
查看镜像
docker images
启动容器-最好使用默认端口80
docker run --name nginx -p 6060:6060 -d nginx
可测试访问,注意防火墙。
其他命令-重启nginx
docker restart nginx
重新加载配置
docker exec nginx nginx -s reload
复制默认配置文件到宿主机
mkdir -p /home/nginx{conf,html,logs}
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/nginx.conf
docker cp nginx:/etc/nginx/conf.d/default.conf /home/nginx/conf/default.conf
启动挂载命令
删除关闭容器
docker stop nginx
docker rm nginx
启动容器、挂载目录
docker run -d --name nginx -p 6060:6060 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -v /home/nginx/conf:/etc/nginx/conf.d --privileged=true -d nginx
nginx.conf文件
在/home/nginx目录配置
#/home/nginx
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;
server {
listen 6060;
#listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
#gzip on;
#include /etc/nginx/conf.d/*.conf;
}
root /usr/share/nginx/html 指向了/home/nginx/html
在/home/nginx/html中放入index.html文件
重启nginx,docker restart nginx,测试访问
SSL配置
帮助文档:在Nginx(或Tengine)服务器上安装证书 - 数字证书管理服务 - 阿里云
阿里云SSL证书、nginx证书下载,把证书上传到/home/nginx/conf
/etc/nginx/conf.d/指向了/home/nginx/conf
更改配置文件、使用自己的文件名称
server {
listen 6060 ssl; #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on
#listen [::]:80;
server_name localhost;
ssl_certificate /etc/nginx/conf.d/xxx.com.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key /etc/nginx/conf.d/xxx.com.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
重启nginx,docker restart nginx,测试访问