docker一个容器内部署多个服务

这篇具有很好参考价值的文章主要介绍了docker一个容器内部署多个服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原因是,我有一个springBoot服务需要写入httpd的目录,然后httpd提供链接给别人下载。之前的方法是,httpd和springBoot各一个容器,但是我们将镜像是部署在腾讯云上的,腾讯云会自动对每个容器分离不同的虚拟机,这样就导致,他们不能共享目录。所以只能写在一个容器内。

思路,首先拿到你的httpd,以及你的springBoot,合并他们的Dockerfile,然后打包,然后启动的时候启动多个端口(httpd的端口和你服务的端口)

0.创建一个文件夹,将之前的httpd以及springBoot放进去

 mkdir dahua-houduan

 cp -r httpd/ dahua-houduan/

 cp -r dahua/ dahua-houduan/

1.合并dockerfile

httpd原docker

docker一个容器内部署多个服务

FROM docker.io/centos:7
RUN echo "Asia/Shanghai" > /etc/timezone
RUN yum -y install httpd
RUN mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
COPY httpd/httpd.conf /etc/httpd/conf/httpd.conf
COPY run.sh /run.sh
RUN chmod 777 /run.sh
EXPOSE 9999
ENTRYPOINT [ "/run.sh" ]

说明

首先拉个镜像,然后下载httpd,然后改配置,运行sh脚本。

这里我们要取的是,都取 ,sh脚本等一会儿进行修改

springBoot原docker

docker一个容器内部署多个服务

FROM java:8
RUN echo "Asia/Shanghai" > /etc/timezone
EXPOSE 8087
COPY dahua/config /config
COPY dahua/logs /logs
COPY dahua/dahua-1.0.jar /dahua-spring.jar
COPY dahua/Dockerfile /Dokcerfile
ENTRYPOINT ["java","-jar","/dahua-spring.jar"]

说明

首先获取jdk环境,然后复制配置文件和日志,复制jar启动

这里我们获取的是,除最后1行的所有

合并说明

建立一个Dockerfile

docker一个容器内部署多个服务

注意from有个坑,如果有多个from只会保留最后一个from的内容

合并 dockerfile

FROM docker.io/centos:7
RUN echo "Asia/Shanghai" > /etc/timezone
RUN yum -y install httpd
RUN mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
COPY httpd/httpd.conf /etc/httpd/conf/httpd.conf
COPY httpd/run.sh /run.sh
RUN chmod 777 /run.sh
EXPOSE 9999

FROM java:8
EXPOSE 8087
COPY dahua/config /config
COPY dahua/logs /logs
COPY dahua/dahua-1.0.jar /dahua-spring.jar
COPY dahua/Dockerfile /Dokcerfile

ENTRYPOINT [ "/run.sh" ]

之前的centos系统会消失,因为一个容器是一个虚拟机,from一次就相当于产生一个新的虚拟机,而虚拟机本质只能有一个虚拟环境。

这里对上面红色的java8不进行from(删除jdk8),而是单独在centos7中单独部署jdk8

说明

jdk的安装就是把目录copy过去更新环境变量

docker一个容器内部署多个服务

 dockerFile新增内容为

COPY jdk1.8 /jdk1.8.0_181
ENV JAVA_HOME=/jdk1.8.0_181
ENV PATH=$PATH:${JAVA_HOME}/bin

完整docker镜像

FROM docker.io/centos:7
RUN echo "Asia/Shanghai" > /etc/timezone
RUN yum -y install httpd
RUN mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
COPY httpd/httpd.conf /etc/httpd/conf/httpd.conf
COPY httpd/run.sh /run.sh
RUN chmod 777 /run.sh
EXPOSE 9999
COPY jdk1.8 /jdk1.8.0_181
ENV JAVA_HOME=/jdk1.8.0_181
ENV PATH=$PATH:${JAVA_HOME}/bin

EXPOSE 8087
COPY dahua/config /config
COPY dahua/logs /logs
COPY dahua/dahua-1.0.jar /dahua-spring.jar
COPY dahua/Dockerfile /Dokcerfile

ENTRYPOINT [ "/run.sh" ]

sh脚本修改

修改run.sh

#!/bin/bash
httpd
java -jar dahua-spring.jar

2.打包

 docker build -t test1 .

3.启动

docker run -p 8087:8087 -p 9999:9999 test1文章来源地址https://www.toymoban.com/news/detail-409542.html

到了这里,关于docker一个容器内部署多个服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云服务部署docker容器

            问题 开发、测试、生产环境不统一,造成项目测试、部署时产生问题 解决方案 使用容器化技术,将环境和项目一起发送给测试、部署人员,测试人数和运维人员直接使用发过 来的环境和项目进行操作,避免环境不统一产生的问题. docker官网:Docker: Accelerated Contain

    2024年02月02日
    浏览(37)
  • 云服务器-Docker容器-系统搭建部署

            最近公司在海外上云服务器,作者自己也搞了云服务器去搭建部署系统,方便了解整体架构和系统的生命周期,排查解决问题可以从原理侧进行分析实验。虽然用的云不是同一个,但是原理都是相通的。         作者选用的是腾讯云,没别的原因,就是便宜加牌子大

    2024年02月12日
    浏览(55)
  • docker 建一个nginx容器,对外提供静态文件服务

    拉取nginx镜像 启动容器 访问时:http://localhost:80/a.jpg 端口号后加文件名字 !!!想要实现文件浏览,必须要在nginx.conf里的http{}里和default.conf里的server{}里添加autoindex on         docker nginx 把一个nginx.conf分成两个,         (nginx.cong)和(default.conf)         访问时:

    2024年02月03日
    浏览(41)
  • Docker容器部署前端Vue服务——手把手教学

    需要工具: Xftp Xshell   首先对前端项目进行打包:npm run build   打包完成 ​ 在项目中生成dist文件: 通过Xshell在/home目录下创建项目文件夹 通过Xftp将打包的dist文件上传到服务器的项目文件夹下; 利用Xshell在拉取nginx镜像 在项目文件夹下编写nginx config配置文件 default.conf内容

    2024年02月07日
    浏览(57)
  • 【Docker】Docker的使用案例以及未来发展、Docker Hub 服务、环境安全、容器部署安全

    作者简介: 辭七七,目前大二,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖    Docker是一个命令行工具,它提供了中央“docker”执行过程中所需的所有工具 。这使得Docker的操作非常简单。

    2024年02月08日
    浏览(46)
  • docker容器打包成镜像,在新的服务器上部署环境

    2719a6b5b8e1是容器id(用docker ps 命令查看) , my_paddle2.2.2:v1 是自己打包的镜像的名字命名格式,有冒号的 docker commit -a “shi” -m “to150” 2799a6b6b8e1 my_paddle2.2.2:v1 -o 和 是一个意思都是打包镜像的符号 sparkdemo:v1 ,就是有冒号,整体镜像名字规则 docker images查看镜像,后用命令保存

    2023年04月08日
    浏览(55)
  • Docker容器化部署若依微服务ruoyi-cloud项目

    接下来的内容以 Ubuntu 22.04.1 操作系统为例。 验证版本信息 Note: 在 CentOS7 上使用上述 yum 方式安装的 Docker ,默认自带了Docker Compose Plugin,不过命令是 docker compose 。 docker pull docker run docker images docker ps docker logs docker start docker stop docker restart docker rmi docker rm docker exec docker netwo

    2024年02月04日
    浏览(43)
  • Docker环境下将已运行的容器打包成新的镜像并运行在另一个服务器上的Docker容器中

    1.1、使用root账户登录进入Linux系统中,键入 docker ps 命令。 2.1、正在运行的容器一行中CONTAINER ID一列下面的字符串就是容器id,复制想要打包的容器ID并执行 docker commit 容器id 容器新名称 例如: docker commit e973c1d6731e mysql/newmysql 3.1、在根目录下键入 docker save -o 新镜像名称.tar 新

    2024年02月16日
    浏览(44)
  • 华为云云耀云服务器L实例评测 | Docker 部署 Reids容器

    Docker的好处在于: 在不同实例上运行相同的容器 Docker的五大优点: 持续部署与测试 、 多云服务平台支持 、 环境标准化和版本控制 、 隔离 、 安全 Docker 适用于较为小的应用,并发量不大的情况下、微服务为超过10个 ,建议适用Docker部署,这样 也省资源、可减少开发成本

    2024年02月08日
    浏览(52)
  • lua使用resty.http做nginx反向代理(https请求,docker容器化部署集群),一个域名多项目转发

    下载使用 链接:https://pan.baidu.com/s/1uQ7yCzQsPWsF6xavFTpbZg 提取码:htay –来自百度网盘超级会员V5的分享 ad_load.lua文件

    2024年01月18日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包