目录
5.1.首先需要将后台的代码打包放入linux中的(tomcat的webapps目录中)
1.自定义网络相关
1.1.自定义网络操作
-
创建自定义网络,并设置相关网络配置:
docker network create --driver bridge --subnet 192.168.0.1/16 --gateway 192.168.0.1 mynet
参数说明:
-
删除自定义网络
mynet
:(注意:没有容器使用此网络才能删除)
docker network rm mynet
-
查看docker中已安装的所有网络:
docker network ls
-
查看自定义网络
mynet
中的配置信息:
docker network inspect mynet
-
network帮助命令:
docker network --help
1.2.容器互通
1.2.1.同一网络下的容器互通
分别创建两个容器centos1
和centos2
,两个容器均使用同一个自定义网络mynet
:
# 创建容器centos1
docker run --name centos1 -itd --net mynet --ip 192.168.0.11 centos:latest
# 创建容器centos2
docker run --name centos2 -itd --net mynet --ip 192.168.0.12 centos:latest
有些下载的镜像,执行docker run -d
不加-it
参数运行后就直接exited(0)
,这是制作此镜像的基础镜像的问题,添加-itd
即可。
例如:centos
镜像就要加-itd
,nginx
镜像则不需要-it
,-d
即可 。
启动容器后检查网络之间是否可以互通:
docker exec -it centos1 ping centos2
1.2.2.不同网络下的容器互通
停止所有容器并删除所有容器:
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
使用bridge
默认网络模式创建容器centos1
:
docker run --name centos1 -itd centos:latest
使用自定义网络模式mynet
创建容器centos2
:
docker run --name centos2 -itd --net mynet --ip 192.168.0.12 centos:latest
测试centos1
和centos2
的连接:
docker exec -it centos1 ping centos2
连接失败,控制台出现如下提示:ping: centos2: Name or service not known
解决方案:向网络mynet
中添加容器centos1
docker network connect mynet centos1
为什么成功了呢?原因:容器centos1
具有两个ip
,也就是双网卡的概念。
2.Docker安装配置Nginx
2.1.什么是Nginx
Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
官网地址:nginx的官网
2.2.部署架构图
2.3.安装Nginx
2.3.1.快速入门
-
搜索镜像:
docker search nginx
-
拉取镜像:
docker pull nginx
-
使用
docker
内置网络bridge
创建Nginx
容器:
docker run \
--name mynginx \
-d -p 80:80 \
nginx:latest
修改centos7
的防火墙放开80端口:
# 开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#重启防火墙(不重启以上的设置是不会生效的):
firewall-cmd --reload
#查询指定端口号是否开启:
firewall-cmd --query-port=80/tcp
测试nginx
是否安装成功。打开浏览器输入: http://宿主机ip:80
,正常情况下会显示nginx
的欢迎页面。
-
使用自定义网络
mynet
创建Nginx
容器:
由于之前已经创建了一个mynginx
容器(基于bridge
网络模式),所以在创建下面容器时请先要删除已经存在的容器mynginx
,再执行下列命令创建容器:
docker run \
--name mynginx \
-d -p 80:80 \
--net mynet --ip 192.168.0.13 \
nginx:latest
最终,通过外部浏览器访问时页面提示连接不上。(自定义网络对外不可见)
2.3.2.部署SPA项目
第一步:在宿主机上创建挂载目录(数据卷):
mkdir -p /data/nginx/{conf,conf.d,html,log}
mkdir -p /data/nginx/{conf,conf.d,html,log}
因为在nginx
镜像中没有安装vi
或vim编辑器(安装又太麻烦了),无法编辑nginx
配置文件,所以直接通过数据卷挂载上去更加方便。
第二步:将nginx
配置文件nginx.conf
上传到宿主机的挂载目录/data/nginx/conf
下:
将课件中的nginx.conf
文件上传到/data/nginx/conf
目录下,并对其配置进行修改。将nginx.conf
配置文件中的动态资源访问部分注释掉。
第三步:将vue
前端项目打包后上传到宿主机的挂载目录/data/nginx/html
下并解压
unzip dist.zip