Docker安装配置Redis和Nginx
文章目录
前言
一提起Docker想必小伙伴们都不陌生,近几年可谓是如火如荼;尤其是对容器化部署的团队来说,可谓是一大"神器"。
Docker的介绍本文不过多赘述,感兴趣的小伙伴可以去官网了解。
本文主要介绍几个常用镜像的安装和配置,用于学习和交流。
一、Docker安装配置Redis
1.拉取镜像
选择拉取镜像版本(我们使用 docker pull redis:7.0.11 这个版本)
2.创建redis挂载文件
(注意我这里是/home/redis下)
/home/redis/data
/home/redis/redis.con
其中redis.conf主要关注以下参数
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no #默认no
databases 16 #数据库个数(可选)
requirepass 123 #密码
dir /data/ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化 默认 no(可选)
注意给文件夹添加权限,不然有可能redis容器内部无权限访问
chmod -R 755 /home/redis/
3.启动容器
docker run --name redis -p 6379:6379 --privileged=true -v /home/redis/data:/data -v /home/redis/redis.conf:/etc/redis/redis.conf -d redis:7.0.11 /usr/local/bin/redis-server /etc/redis/redis.conf
启动命令参数解释
…
–name redis # 别名
-p 6379:6379 # 宿主机和容器端口映射
–privileged=true # 挂载容器卷目录权限
-v /home/redis/redis.conf:/etc/redis/redis.conf #[宿主机配置文件]:[容器配置文件]
-v /home/redis/data:/data #[宿主机数据存储位置]:[容器数据存储位置]
-d redis:7.0.11 #后台运行指定容器,并返回容器ID
/usr/local/bin/redis-server /etc/redis/redis.conf #绝对路径指定redis-server 以指定配置文件启动redis服
4.查看容器启动日志
docker ps -a #列出容器(-a显示所有的容器,包括未运行的)
docker logs -f CONTAINERID #查看指定容器运行日志
5.在运行的容器中执行命令
docker exec -it CONTAINER ID sh
二、Docker安装配置Nginx
1.拉取镜像
选择拉取镜像版本(我们使用 docker pull nginx:1.23 这个版本)
2.创建nginx挂载文件
(注意我这里是/home/nginx下)
/home/nginx/conf/nginx.conf #配置文件
/home/nginx/conf/conf.d
/home/nginx/html #前端静态文件夹
/home/nginx/log #日志文件夹
注意给文件夹添加权限,不然有可能redis容器内部无权限访问
chmod -R 755 /home/nginx/
3.启动容器
docker run -d --name nginx -p 80:80 -p 443:443 --privileged=true -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d/:/etc/nginx/conf.d -v /home/nginx/html:/usr/share/nginx/html -v /home/nginx/log:/var/log/nginx nginx:1.23
启动命令参数解释
…
-p 443:443 #开启https
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf #挂载配置文件
-v /home/nginx/conf/conf.d/:/etc/nginx/conf.d #挂载配置文件
-v /home/nginx/html:/usr/share/nginx/html #挂载静态页面
-v /home/nginx/log:/var/log/nginx #挂载日志文件夹
4.查看容器启动日志
docker ps -a #列出容器(-a显示所有的容器,包括未运行的)
docker logs -f CONTAINERID #查看指定容器运行日志
以下是nginx.conf相关配置,大家可作为参考
#指定nginx进程文件,nginx启动时会把主进程的pid写入到这个文件中
pid /var/run/nginx.pid;
#工作模式及连接数上限
events {
#设置网路连接序列化,防止惊群现象发生,默认为on
accept_mutex on;
#设置一个进程是否同时接受多个网络连接,默认为off
multi_accept on;
#事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
#use epoll;
#单个work进程允许的最大连接数,默认为512
worker_connections 1024;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
#文件扩展名与文件类型映射表。设定mime类型(邮件支持类型),类型由mime.types文件定义
include /etc/nginx/mime.types;
#设定默认文件类型,默认为text/plain
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"';
#设定是否开启日志文件的访问权限,默认为off
rewrite_log on;
#设定访问日志和错误日志位置,日志格式
access_log /var/log/nginx/access.log main;
#设定nginx处理请求的方式,共有三种 sendfile|on|off off为标准模式,on为高效模式,sendfile为文件传输模式
sendfile on;
#连接超时时间,默认为75s,可以在http,server,location块。
keepalive_timeout 65;
#设定gzip压缩,on|off|压缩等级
#gzip on;
#nginx默认开启,减少网络报文段的数量,提高网络吞吐量
#tcp_nodelay on;
#设定服务器,监听80端口
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
#服务转发配置
location ^~/serverA//prefix/ {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:8001/;
}
#服务转发配置
location ^~/serverB/prefix/ {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:8002/;
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#404页面配置
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
}
#https配置
server {
listen 443 ssl;
server_name www.xxx;
#证书路径
ssl_certificate /etc/nginx/conf.d/nginx.crt;
#私钥路径
ssl_certificate_key /etc/nginx/conf.d/nginx.key;
#缓存ssl会话信息,避免频繁的重复握手
ssl_session_cache shared:SSL:1m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#设置过期时间
ssl_session_timeout 5m;
#设置加密套件 HIGH:!aNULL:!MD5; 为默认值 也可以自定义
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#服务转发配置
location ^~/serverC/prefix/ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:8002/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#404页面配置
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
}
}
总结
以上就是今天要讲的内容,本文简单介绍了Docker中几个常用镜像的安装和配置,对于其他的一些镜像小伙伴们可以参考一些其他文章摸索下,相信聪明的你一定会有收获;
有问题也欢迎大家评论区讨论,让我们一起探索共同进步!
小伙伴们如果有兴趣可以关注公众号【探索的石头】,里面会分享很多有趣的内容,相信大家会喜欢~