我自己里的Docker容器就是使用Docker镜像启动了一个ke的容器(目前理解,后期再说吧)。
1.安装启动nginx容器
#1. 用docker search nginx 命令来查看可用版本
docker search nginx
#2. 这里我们拉取官方的1.8.1版本的镜像:
docker pull nginx:1.8.1
#3. 安装完成后,我们可以使用以下命令来运行 nginx 容器:
docker run --name nginx-test -p 80:80 -d nginx:1.8.1
#参数说明:
# --name nginx-test:容器名称。
# -p 80:80: 端口进行映射,将本地 80 端口映射到容器内部的 80 端口。
# -d nginx: 设置容器在在后台一直运行。
#4. 最后可以通过浏览器可以直接访问 80 端口的nginx 服务
以上命令启动了nginx程序!都是初始的配置及文件。
2.docker nginx关键目录映射到本机
mkdir -p /data/nginx/www /data/nginx/logs /data/nginx/conf/conf.d /data/nginx/ssl #首先在本机创建nginx的一些文件存储目录
www:映射nginx存储网站网页的目录
logs: 映射nginx日志目录
conf: 映射nginx配置文件目录
ssl: 映射ssl文件目录
将nginx-test容器默认的配置文件copy到本地
docker cp nginx-test:/etc/nginx/nginx.conf /data/nginx/conf/ #拷贝nginx容器内的nginx.conf配置文件
docker cp nginx-test:/etc/nginx/conf.d/ /data/nginx/conf/ #拷贝nginx容器内的default.conf,example_ssl.conf配置文件
使用docker rm nginx-test命令,删除旧的nginx-test容器。(这行划重点!这行划重点!这行划重点!!)
使用以下命令创建新nginx容器nginx-test并将www,logs,conf目录映射到本地服
docker run -d -p 80:80 -p 443:443 --name nginx-test \
-v /docker/www:/usr/share/nginx/html \
-v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /docker/nginx/logs:/var/log/nginx \
-v /docker/nginx/ssl:/etc/nginx/ssl \
nginx:1.8.1
#注:上面命令是一行,为了方便理解,换行了!!!换行了!!!换行了!!! 你也可以直接复制使用。
/data/nginx/www目录下创建index.html,就可以了,因为他映射到本地而本地没有文件。)
docker start nginx-test
3.docker nginx配置https访问
配置文件只需要修改本地目录就可以了,因为上一步已经映射到本地了,要修改的本地配置文件路径:/data/nginx/conf/
首先是nginx.conf文件,这个文件默认的配置就行,可不修改。
我们来修改配置文件/data/nginx/conf/conf.d/default.conf,可以满足我们绝大部分需求。以下沃得配置文件内容:
server {
listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
listen 443 ssl;
server_name aiho.site; #域名
# 增加ssl
#ssl on; #如果强制HTTPs访问,这行要打开
ssl_certificate /etc/nginx/ssl/aiho.pem;
ssl_certificate_key /etc/nginx/ssl/aiho.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 指定密码为openssl支持的格式
ssl_protocols SSLv2 SSLv3 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5; # 密码加密方式
ssl_prefer_server_ciphers on; # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
# 定义首页索引目录和名称
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#重定向错误页面到 /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
docker restart nginx-test #重启nginx容器
重启nginx容器后,现在就可以通过https来访问nginx的服务器了。
nginx配置结束了。
-v /docker/nginx/conf/conf.d:/etc/nginx/conf.d \