docker部署Web项目(二)
来源:互联网 发布:矩阵方程ax=b 编辑:程序博客网 时间:2024/06/11 04:32
上一篇中极其简略的介绍如何利用docker部署web项目,思路是pull Linux镜像后,在此镜像的容器中部署web容器运行环境,然后利用此容器重新生成自己镜像。方法是可行的,会发现生成自己的镜像非常大。这篇文章主要介绍如果利用不同的容器共同构成项目部署环境。
首先介绍docker中三个基本概念:
仓库:Docker仓库(Repository)类似与代码仓库,是Docker集中存放镜像文件的场所。
镜像:Docker镜像(Image)类似于虚拟机的镜像,可以将他理解为一个面向Docker引擎的只读模板,包含了文件系统。
容器:Docker容器(Container)类似于一个轻量级的沙箱子(因为Docker是基于Linux内核的虚拟技术,所以消耗资源十分少),Docker利用容器来运行和隔离应用。
以上名词解释均来自网络,理解这三个概念至关重要。
- 首先pull,tomcat、mysql镜像到本地
docker pull hub.c.163.com/library/tomcat:latest
docker pull hub.c.163.com/library/mysql:latest 利用docker创建网络
docker run 创建 Docker 容器时,可以用 –net选项指定容器的网络模式,Docker 有以下 4 种网络模式:- host 模式
- container 模式
- none 模式
- bridge 模式
后来提供了docker network create直接创建网络(老版本不支持),不需要再用其他工具来为容器分配网络。下面就用docker创建网络方式来为容器指定ip,方便容器间通信。
docker network create --subnet 192.168.31.0/24 --gateway 192.168.31.1 network0
通过
sudo docker network ls
发现网络network0已经被创建,在宿主机上用ifconfig也可以查看到,名称可能不同。创建容器并指定IP
创建mysql容器,并且命名、映射宿主机端口、指定IP、设置root密码、创建数据库、以bash方式交互运行:sudo docker run -d -p 3366:3306 --name mysql --net network0 --ip 192.168.31.10 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=yunweather hub.c.163.com/library/mysql同样创建tocat容器:sudo docker run -d -p 8088:8080 --name tomcat --net network0 --ip 192.168.31.11 hub.c.163.com/library/tomcat
上面创建的容器mysql、tomcat处于同一网段下,可以通信。以上创建容器时参数设置,请参考镜像文档。映射宿主机端口号,外界访问时,指向容器中的服务,而且通过工具可以连接容器中的数据库,进行操作。
- 通过Dockerfile生成镜像
以上只是创建好了容器,但是tomcat中并没有部署项目,利用Dockerfile可以帮助生成新的镜像。思路大概是:- 把web的war包或者webapp下的文件放入tomcat下webapp/下
- 重新生成镜像
- 生成容器
- 启动服务
新建Dockerfile文件:
from hub.c.163.com/library/tomcat
MAINTAINER diy_os diy_os@163.com
COPY web.war /usr/local/tomcat/webapps
把war包放在同一目录下,执行sudo docker build -t ImageName:version .
即可。
阅读全文
1 0
- docker部署Web项目(二)
- 在docker容器中部署Web项目
- linux+docker+nginx+tomcat部署web项目
- linux下docker部署web项目笔记
- Docker学习笔记之二:web开发和Tomcat部署
- docker一键部署启动java web项目
- docker部署web应用
- Docker部署web应用
- docker部署web应用
- Docker 部署 tomcat 项目
- docker项目开发部署
- Docker实践 - docker + svn + maven + tomcat 一键部署Java Web项目
- Docker实践-docker + svn + maven + tomcat 一键部署Java Web项目
- Docker学习---web应用部署
- docker dockerfile 部署java web
- 【Docker】在Docker中部署tornado项目
- Docker部署(二):MySQL数据库
- Docker部署JavaWeb项目实战
- LeetCode 581. Shortest Unsorted Contimuous Subarray
- 用linux写一个博客
- Android4.4拒绝发送扫描SD卡的广播
- 说说 JavaScript 的事件对象
- iOS关于armv7,armv7s,arm64,i386,x86_64
- docker部署Web项目(二)
- Halcon学习(四)图像处理中的两个坐标系
- 设屐师—创新捷径 小身材 大智慧
- maya单独显示线框和带贴图物体 优化视窗操作流畅度
- 深入浅出自动驾驶(一)-图像识别
- Recyclerview的一些个人理解与使用(六)Recyclerview的分段加载
- 338. Counting Bits
- 说说IO
- MySQL之索引学习笔记