首先附上docker的一些常用命令
基本操作命令
[repository]:[tag]。
在没有指定tag时,默认是latest,代表最新版本的镜像
mysql(Repository)存储库: 5.7(Tag)标签docker pull nginx——拉取nginx镜像
docker images——查看拉取到的镜像
docker xx --help——查看xx的命令语法
docker save——导出镜像到磁盘
docker load——加载镜像
docker rmi——删除镜像
docker push——上传镜像容器命令
docker run --name mn -p 80:80 -d nginx
docker run:创建并运行一个容器
--name:给容器起一个名字,比如叫做mn
-p:将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
-d:后台运行容器
nginx:镜像名称,例如nginxdocker exec——进入容器执行命令
docker logs——查看容器运行日志
docker ps——查看所有运行的容器及状态
docker pause——暂停容器
docker unpause——运行容器
docker stop——停止容器
docker start——开启容器
docker rm——删除指定容器
一、安装docker
1.下载脚本
curl -fsSL https://get.docker.com -o get-docker.sh
2.执行脚本
sh get-docker.sh
3.设置docker阿里镜像,否则docker pull的下载速度贼慢
①有文件夹省略这步
mkdir -p /etc/docker
②设置docker阿里镜像
tee /etc/docker/daemon.json <<-'EOF'
{ "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]}
EOF
④后台程序重新加载
systemctl daemon-reload
⑤重新启动docker服务
systemctl restart docker
⑥查看docker是否安装成功
docker -v
二、使用强大如斯的docker一键安装nginx
docker pull nginx
docker容器可以做到秒级启动,用完即可删除,如果需要做文件持久化存储需要把容器内的目录和配置文件挂载出来
nginx通常需要持久化的目录以及配置的容器路径,可能还得挂载个日志目录
①nginx容器内部署前端的路径
/usr/share/nginx/html
② nginx容器内配置文件路径。nginx.conf:配置反向代理、负载均衡、动静分离....
/etc/nginx/nginx.conf
二、开始正式挂载容器文件目录
1. 在宿主机,创建两个目录用来存放上边说的前端文件,nginx配置文件
回到根目录
cd /
进入咱们的/usr/local下
cd /usr/local
创建nginx文件夹后再进入nginx文件夹里创建前端文件夹,nginx配置文件夹
mkdir nginx //创建nginx文件夹
cd nginx //进入nginx文件夹
mkdir html //创建前端文件夹
mkdir conf //创建nginx配置文件夹
2.使用docker 随便创建一个nginx容器
docker run --name nginx --rm -d nginx
--rm 表示容器停止后就删除该容器
-d 表示后台运行容器
--name 给容器起名字
3.使用以下下命令你可以看到nginx 容器 正在运行中
docker ps
4.把nginx容器内的默认配置文件给拷贝到刚才创建的nginx宿主机配置文件夹目录/usr/local/nginx/conf目录下
docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf
5.拷贝完成后停止nginx容器
docker stop nginx
再使用docker ps -a 查看容器 你就看不到了
-a 表示查看所有容器, 不加查看正在运行的容器
6.ojbk了现在就开始正式的文件挂载,(注意:以下是一整行命令)
docker run --restart-always --name mynginx -d -p 80:80 -v /usr/local/nginx/html: /usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx
--restart-always 保证特殊情况重启容器
-p 把容器内的端口映射到宿主机, -p [宿主机端口]:[容器内端口]
这样我们直接在浏览器输入你的服务器ip就可以看到nginx的欢迎页了,阿里云服务器还要在安全组内开放80端口
-v 就是把容器内的目录映射到宿主机的目录 这样就算容器删除了我们的数据还在
以后部署的时候就可以把前端打包后的静态资源放在/usr/local/nginx/html路径下,然后执行docker restart nginx就ok啦
三、配置nginx反向代理
1.进入nginx配置挂载目录/usr/local/nginx/conf,打开目录中配置文件vim nginx.conf,在http块中添加以下代码
http{
server{
#监听的端口
listen 80;
#字符格式
charset utf-8;
#当前的服务器ip
server_name 192.168.112.135;
location / {
#要代理去哪个服务器的ip以及端口
proxy_pass http://192.168.112.135:8080;
#被代理服务器返回默认的响应头中的location头域以及refresh头域数值
proxy_redirect default;
}
}
}
这样子就可以用本机的80端口代理其它服务器的8080端口
![](https://img-blog.csdnimg.cn/187fe9dc602e4fcda9216be597c7f2da.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiO5Ya36aOO5LiA6LW35a2mamF2YQ==,size_11,color_FFFFFF,t_70,g_se,x_16)
http{
#upstream:up服务流
#myserver:自定义服务流名称
upstream myserver{
#负载均衡五种策略,这里写的是iphash与权重,默认不写则为轮询策略
ip_hash;
#===========
#需要代理的服务器ip地址以及端口,并且设置了权重
server 115.28.52.63:8080 weight=1;
server 115.28.52.63:8181 weight=1;
}
server{
#监听的端口
listen 80;
#字符格式
charset utf-8;
#当前的服务器ip
server_name 192.168.112.135;
location / {
#代理上边自定义的服务流名称
proxy_pass http://myserver;
#被代理服务器返回默认的响应头中的location头域以及refresh头域数值
proxy_redirect default;
#连接超时 默认为60秒
proxy_connect_timeout 65s;
#读取超时 默认为60秒
proxy_read_timeout 65s;
#发送超时 默认为60秒
proxy_send_timeout 65s;
}
}
}
upstream server_pool {server 192.168.5.21 weight = 10 ;server 192.168.5.22 weight = 10 ;}
upstream server_pool {ip_hash ;server 192.168.5.21:80 ;server 192.168.5.22:80 ;}
按后端服务器的响应时间来分配请求,响应时间短的优先分配。upstream server_pool {server 192.168.5.21:80 ;server 192.168.5.22:80 ;fair ;}
一起学习
嗯嗯嗯......终于到了激动人心的时候了,兄弟扫描下面这个小码,我来帮你搞定一切,帝王般的服务你值得拥有,免费的哟,记得备注下:曹家的小仙女 / 小哥哥,微信:BitPlanet
最后附上
一寸光阴一寸金,寸金难买寸光阴。请珍惜现在美好的青春,咱们一起努力奋斗,创造美好未来
拜托拜托!!!拜托拜托!!!拜托拜托!!!