[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]docker安装nginx+tomcat

上一篇:[GDS]Worldspan生成pnr时,私有运价保存失败的问题
下一篇:[备忘]docker定时删除容器日志

添加日期:2019/7/12 20:12:44 快速返回   返回列表 阅读1593次
参考了这俩:
https://www.jianshu.com/p/c136c7ec2572
https://www.cnblogs.com/areyouready/p/8973268.html

大概记一下:

安装docker(自动检测安装):wget -qO- https://get.docker.com/ | sh

搜镜像:docker search tomcat
下镜像:docker pull xxxx
列镜像:docker images
删镜像:docker rmi xxxx
看镜像历史(创建镜像时干了啥):docker history xxx  或者docker history --no-trunc xxx

看运行的容器:docker ps 
看所有容器:docker ps -a
删容器:docker rm xxx
启动容器:docker start xxx
停止容器:docker stop xxx
复制文件:docker cp xxx路径 容器ID:/要复制过去的目录路径

 
(1)tomcat直接弄个tomcat+jdk的镜像就能跑。

war包放哪呢?
<1>用目录映射,把主机的某个目录映射到tomcat的webapps目录,然后war包放外面就行了。
升级时,war包一扔,重启tomcat的容器即可。

<2>自己搞DockerFile,build时复制到容器里,或者从某个网址wget下来再复制进去。升级得重新build出一个容器吧。

另外,webapp需要调用的配置文件啥的都可以映射到主机的真实目录。
-----------------------------
我最后用了这个命令:
docker run --name docker_tomcat -d -p 8080:8080 -v /opt/docker/tomcat:/data/xxxx/properties -v /opt/docker/tomcat:/usr/local/tomcat/webapps zhaiweiwei/tomcat7-jdk7

其中,zhaiweiwei/tomcat7-jdk7是别人的镜像,我拿来直接用的,哈哈。


(2)nginx,也超简单,直接docker pull nginx就行了。

也是配置文件放外边,映射了一堆目录

nginx的upstream里用了
server tomcat01:8080 weight=1 ;

然后命令:
docker run --name docker_nginx --link=docker_tomcat:tomcat01 -d -p 80:80 -v /opt/docker/nginx/log:/var/log/nginx -v /opt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /opt/docker/nginx/conf.d:/etc/nginx/conf.d  -v /data/logs/nginxlog:/data/logs/nginxlog nginx:latest

其中--link=docker_tomcat:tomcat01,表示tomcat01就是上面启动的docker_tomcat那个tomat。

这样,nginx和tomcat就关联上了,否则你直接写127.0.0.1是不能访问tomcat的。
因为nginx是单独一个容器,它容器里没有tomcat。
或者写主机的内网ip应该也行,不过这样就不通用了,换个机器就得改ip。


修改配置文件,只需要docker exec -it 容器名 bash进入到容器,
然后nginx -s reload
==================================================

新机器的话:
写个批处理脚本,下载配置文件,下载war包,
然后执行docker指令,自动下载镜像,启动容器?
好像docker compose可以编排docker容器,比如把nginx和tomcat编排在一起,
自动下载镜像,启动容器。
再研究~~

还有一种方式,就是自己做镜像,把配置文件和war包都扔到镜像里。
版本升级时,实际就是升级镜像。
然后每台机器直接升级镜像,重建容器,启动即可?

现在还是有些晕乎,对于单机来说,折腾命令跟以前复制粘贴脚本部署差不多。
还体会不到为啥要用docker。

特别是有些机器可能配置略微不同,手工处理比较灵活。
docker难道适合几百台配置都一样的场景?

不过docker镜像确实可以封装很多步的操作。比如安装tomcat,安装jdk,安装日志分割等等,直接弄好做个镜像,后面确实省事很多。

 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved