docker部署Web项目(二)

上一篇中极其简略的介绍如何利用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 .即可。

更多文章请关注微信公众号:
https://note.youdao.com/yws/api/personal/file/WEB6c0f1a891fdea03ecc708833e0df9b3b?method=download&shareKey=45f2c5279d958cfcdc96b6c92be0ad96

Docker部署Web项目的步骤如下: 1. 首先,安装Docker和JDK。可以使用命令docker pull java:8来拉取Java 8的Docker镜像\[1\]。 2. 将打包好的项目Jar包上传到服务器。可以使用命令docker build -t bootdemo-docker .来构建程序镜像\[1\]。 3. 在项目Jar包的同目录下创建Dockerfile,其中包含了构建镜像的相关指令,如添加Jar包、设置容器端口等\[1\]。 4. 使用docker build命令构建程序镜像,例如docker build -t bootdemo-docker .\[1\]。 5. 查看镜像,可以使用docker images命令来查看已构建的镜像\[3\]。 6. 创建容器并运行,可以使用docker run命令来创建并运行容器\[3\]。 7. 查看容器,可以使用docker ps命令来查看正在运行的容器\[3\]。 8. 最后,通过浏览器访问部署的Web项目,可以使用容器的IP地址和端口号来访问\[3\]。 以上是使用Docker部署Web项目的一般步骤,具体的操作可以根据实际情况进行调整和优化\[2\]。 #### 引用[.reference_title] - *1* *3* [Docker部署web项目](https://blog.csdn.net/sinat_27933301/article/details/102772838)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Docker 部署 web 项目](https://blog.csdn.net/qq_45745523/article/details/128868493)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值