既然要使用docker部署nginx,在这里先介绍一些命令
nginx相关命令
(1)启动:start nginx.exe
(2)停止:nginx.exe -s stop
重新加载:nginx.exe -s reload
docker相关命令
(1)搜索镜像:docker search
镜像名称
(2)拉取镜像:docker pull
镜像名称
(3)查看镜像:docker images
(4)删除镜像:docker rmi
镜像名称(镜像id)
(5)删除镜像:docker rmi docker images -q
(6)查看当前正在运行的容器:docker ps
(7)查看所有容器:docker ps -a
(8)创建容器命令: docker run
表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-V:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数则会创建一个守护式容器在后 台运行(这样创建容器后不会自动登录容器,如果只加-i-t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
交互式方式创建容器:docker run -it --name=容器名称 镜像名称:标签 /bin/bash
守护式方式创建容器:docker run -di --name=容器名称 镜像名称:标签
(9)进入容器:docker exex -it
容器名称(或者容器id) /bin/bash
(10)退出容器:exit
(11)启动容器:docker start
容器名称(或者容器id)
(12)停止容器:docker stop
容器名称(或者容器id)
接下来就开始吧
容器创建(目录挂载)
$ docker run --name=mynginx -p 80:80 -v /resource/html:/usr/share/nginx/html \
-v /resource/conf.d:/etc/nginx/conf.d -d nginx
- nginx服务器静态资源目录: /usr/share/nginx/html
- nginx 配置文件目录: /etc/nginx/conf.d
通过目录挂载将静态资源目录,以及配置文件目录映射到宿主机(本服务器),但是此时是不能运行的,因为配置文件目录下此时是空的,创建如下:
$ vi /resource/conf.d/default.conf
#复制下面的server到配置文件中(如下是最基本的,之后要加跨域等自行加载)
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
更新nginx配置
创建完 nginx 的配置文件之后,我们要让配置生效, 必须让 nginx 加载conf.d 目录下面的配置.
$ docker exec -it mynginx /etc/init.d/nginx reload
到这里记得你的html下还是没有文件的,添加index.html就好了
配置反向代理
在映射的配置文件目录下下创建一个.conf 的配置就可以了
$ vi /resource/conf.d/gogo.conf
#复制下面的server到配置文件中
server {
listen 80;
server_name 域名; # 把域名替换成你自己的
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ip:port; # 这里设置你要代理的ip+端口
}
}
到这里基本上就结束了,如果想深入了解docker
就点这个把---->Docker — 从入门到实践