sudo yum install docker
启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
docker安装niginx
1.安装nginx docker镜像
获取nginx官方镜像
docker pull nginx
查看镜像库
docker images
使用nginx镜像来创建nginx容器实例
docker run --name nginx-test -p 80:80 -d nginx
run 创建容器实例
-- name 容器命名
-v 映射目录
-d 设置容器后台运行
-p 本机端口映射 将容器的80端口映射到本机的80端口
语句最后一个nginx是使用镜像的名称
创建容器成功后,启动nginx容器
docker run --name nginx-test -p 80:80 -d nginx
访问 本机测试
启动成功
2.将nginx关键目录映射到本机
首先在本机创建nginx的一些文件存储目录
mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf
www: nginx存储网站网页的目录
logs: nginx日志目录
conf: nginx配置文件目录
查看nginx-test容器id
docker ps -a
将nginx-test容器配置文件copy到本地
docker cp 481e121fb29f:/etc/nginx/nginx.conf /root/nginx/conf
docker cp 481e121fb29f:/etc/nginx/conf.d/default.conf /root/nginx/conf/conf.d
创建新nginx容器nginx-web,并将www,logs,conf目录映射到本地
docker run -d -p 80:80 --name nginx-web -v /opt/nginx/www:/usr/share/nginx/html -v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx/conf/conf.d:/etc/nginx/conf.d -v /opt/nginx/logs:/var/log/nginx nginx
启动nginx
docker start nginx-web
在本机/root/nginx/www目录下创建index.html内容为
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>docker搭建nginx</title>
</head>
<body>
<h1>docker搭建nginx映射成功</h1>
<p>666666666</p>
</body>
</html>
完成后重新访问本机
映射成功
docker启动/停止nginx命令
docker stop nginx
docker start nginx
docker restart nginx
删除docker容器nginx
docker rm nginx
进入docker容器nginx
docker exec -it nginx-web /bin/bash
docker容器查看文件
cat /etc/nginx/nginx.conf
3.需要配置https则nginx映射目录时需要修改成
docker run -d -p 80:80 -p 443:443 --name nginx -v /usr/nginx/www:/usr/share/nginx/html -v /usr/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/nginx/conf/conf.d:/etc/nginx/conf.d -v /usr/nginx/logs:/var/log/nginx -v /usr/nginx/cert:/etc/nginx/cert nginx
我在腾讯云买的服务器,申请的免费证书(nginx)上传到 /usr/nginx/cert中
/usr/nginx/conf/conf.d/default.conf 同时添加443端口监听
server {
listen 443 ssl ;
#填写绑定证书的域名
server_name xxx.cn;
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root /usr/share/nginx/html;
index index.html index.htm;
#证书文件名称
ssl_certificate /etc/nginx/cert/xxxxxxxx.crt;
#私钥文件名称
ssl_certificate_key /etc/nginx/cert/xxxxxxx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
· root /usr/share/nginx/html;
index index.html index.htm;
}
}
server {
listen 80;
#填写绑定证书的域名
server_name xxx.cn;
#把http的域名请求转成https
#return 301 https://$host$request_uri;
#或者
rewrite ^(.*) https://xxx.cn$1 permanent;
}