安装nginx镜像
准备
# 安装最新的nginx镜像
docker pull nginx:1.13
# 在本地磁盘创建nginx的目录(用于存放nginx的数据文件和配置文件)
mkdir /opt/docker-software/nginx
nginx.conf
在 /opt/docker-software/nginx/ 目录下创建 nginx.conf ,目的是替换docker nginx中的默认配置文件,内容如下:
user root;
#worker_processes为nginx的进程数,进程数等于CPU的核数
worker_processes 1;
#nginx 进程打开的最多文件描述符数目,一般为ulimit -n与nginx 进程数相除
worker_rlimit_nofile 65535;
#error_log /var/log/nginx/error.log warn;
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;
error_log /var/log/nginx/error.log warn;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
gzip on;
client_max_body_size 512M;
client_body_buffer_size 128k;
#防止504 gateway time out
fastcgi_connect_timeout 1200s;
fastcgi_send_timeout 1200s;
fastcgi_read_timeout 1200s;
server {
listen 80 default_server;
location / {
root /usr/share/nginx/html;
#根据自己项目的特点,设置html、js、css、img等静态资源的缓存时长
add_header Cache-Control max-age=86400;
}
}
}
创建HTML
在 /opt/docker-software/nginx/demo1/ 目录下创建 index.html , 内容:
<html>
<body>
<h1>hello demo1</h1>
</body>
</html>
在 /opt/docker-software/nginx/demo2/ 目录下创建 index.html , 内容:
<html>
<body>
<h1>hello demo2</h1>
</body>
</html>
启动
# 启动第一个nginx
docker run --name nginx-demo1 \
-p 81:80 \
-v /opt/docker-software/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/docker-software/nginx/demo1/:/usr/share/nginx/html/ \
-v /opt/docker-software/nginx/demo1-logs/:/var/log/nginx/:rw \
-d nginx:1.13
# 启动第二个nginx
docker run --name nginx-demo2 \
-p 82:80 \
-v /opt/docker-software/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/docker-software/nginx/demo2/:/usr/share/nginx/html/ \
-v /opt/docker-software/nginx/demo2-logs/:/var/log/nginx/:rw \
-d nginx:1.13
命令解释:
- -p 为将三个端口映射为物理机器的端口
- 将宿主机的配置文件(/opt/docker-software/nginx/nginx.conf/opt/docker-software/nginx/nginx.conf)映射到容器的配置文件(/etc/nginx/nginx.conf)
- log 为映射nginx的日志文件目录
- html 为映射nginx存放网站的目录
- 注意:在nginx.conf中配置的html目录(/usr/share/nginx/html/)和日志目录(/var/log/nginx/),都需要映射到宿主机上
测试
打开本地浏览器访问主机的81和82端口
容器管理命令:
# 停止
docker stop 容器id
# 启动
docker start 容器id
# 重启
docker retart 容器id
网友评论