文章目录

  • apache-apollo Dockfile 镜像制作
    • apache-apollo
    • apache-apollo-Dockerfile 详解
      • Dockerfile详解
    • docker 启动apollo镜像
    • docker-compose 启动Apollo镜像
    • 验证是否成

apache-apollo Dockfile 镜像制作

apache-apollo

Apache Apollo是一个代理服务器,其是在ActiveMQ基础上发展而来的,可以支持STOMP, AMQP, MQTT, Openwire, SSL, WebSockets 等多种协议。

apache-apollo-Dockerfile 详解

如果你对Dockerfile还不是很了解的话可以参考下面的文章

参考文章

Docker Dockerfile 定制镜像

Dockerfile详解

1. 下载apache-apollo

apache-apollo-1.7-Downloads

2. 上传到服务器目录
(我文件路径如下所示)


我的apache-apollo安装包是改过名字的,所以Dockerfile里面的目录名称有点不太一样,所以一切请根据自己的文件目

3 .编辑Dockerfile内容

#我们的镜像基于jdk8,因为apollo是采用java开发的
FROM openjdk:8-jdk
#署名
MAINTAINER lengff lengff@qq.com
#指定工作目录
WORKDIR /data/server
#拷贝apollo安卓包到容器里面
COPY ./apollo-1.7.tar.gz .
#暴露需要用到的端口,这里的端口是根据你配置的apollo.xml配置文件中的端口
EXPOSE 61680 61681 61613 61614 61623 61624
#解压安装包
RUN tar zxvf apollo-1.7.tar.gz\
&& cd /data/server/apache-apollo-1.7/bin\
&& chmod a+x apollo\
#新建一个broker
&& ./apollo create MqttBroker\
&& cd /data/server/apache-apollo-1.7/bin/MqttBroker/bin\
&& chmod a+x apollo-broker
#挂载配置文件目录
VOLUME /data/server/apache-apollo-1.7/bin/MqttBroker/etc
#重新指定工作目录
WORKDIR /data/server/apache-apollo-1.7/bin/MqttBroker/bin/
#镜像启动命令
CMD ./apollo-broker run

4 .构建镜像

命令:

docker build -t apollo .

缺陷

  1. 由于在Dockerfile 设置了VOLUME,我的主要目的是为了让容器启动时访问配置文件是从宿主机访问,而不是从容器里面访问,但是容器创建的时候是不会将配置文件复制到宿主机上的,所以就需要我们手动从容器里面复制配置文件;

  2. 其实都不用手动下载安装包的,直接在Dockerfile 的RUN里面执行就可以了,但是网络不稳定,总是下载失败,所以推挤手动下载

命令:

docker cp apollo:/data/server/apache-apollo-1.7/bin/MqttBroker/etc/ .

说明:

后面的. 可以我们指定目录的, .代表当前目录

docker 启动apollo镜像

命令:

docker run \#映射端口-p 61680:61680 \-p 61623:61623 \-p 61624:61624 \-p 61613:61613 \-p 61614:61614 \#指定容器名称--name apollo \#挂载配置文件-v /usr/local/docker/apollo/etc:/data/server/apache-apollo-1.7/bin/MqttBroker/etc \#守护态运行成功(后台运行)-d \#镜像名称apollo

说明:

  1. -v 里面的etc 就是我上述缺陷中提到的

  2. 使用命令运行docker 还是不怎么方便看懂意思的,所以推荐使用docker-compose运行docker容器

docker-compose 启动Apollo镜像

我的docker-compose.yml内容如下

version: "3"
services: apollo:restart: alwayscontainer_name: apolloimage: apolloports:- 61680:61680- 61623:61623- 61624:61624- 61613:61613- 61614:61614volumes:- /usr/local/docker/apollo/etc:/data/server/apache-apollo-1.7/bin/MqttBroker/etc

说明:

  1. 这里的volumes里面的etc 就是我上述缺陷中提到的怎么去获取etc

验证是否成

你云主机或者虚拟机的 ip+61680 成功就标识你的容器运行成功

apache-apollo Dockfile 镜像制作相关推荐

  1. Docker 镜像制作和管理

    2 Docker 镜像制作和管理 2.1 Docker 镜像说明 2.1.1 Docker 镜像中有没有内核 docker run --rm apline uname -r #内核 2.1.2 为什么 ...

  2. Docker基础管理和镜像制作

    目录 docker执行规则        有前台的进程才能进去页面 下载镜像存在位置 操作系统的镜像是不运行的需要有前台才能进行 列: 清除dangling的镜像,dangling images表示T ...

  3. docker镜像制作(二)——构建企业镜像LAMP+BBS

    docker镜像制作(二)--构建企业镜像LAMP+BBS 一.LAMP概述 二.进行搭建 1.启动基础镜像容器 2.容器中优化yum源,并安装软件 3.软件初始化 ①.ssh的开启 ②.mysql的 ...

  4. Docker Java程序镜像制作

    Docker Java程序镜像制作 制作前的准备 jre:不需要完整的jdk,jre即可,到Oracle进行下载即可,下载链接,根据自己的情况进行选择,这里选择jre-8u221-linux-x64. ...

  5. Docker架构部署及镜像制作,免费容器云体验

    前面的文章,我已经介绍了很多关于云原生.容器技术的相关知识和市场趋势等内容.说到云原生,就有那么些关键词:Kubernetes.Docker.Istio.IDE等等. 今天这篇文章,就想来聊聊Dock ...

  6. Docker镜像制作与仓库搭建

    Docker 1,docker镜像制作 2,docker仓库搭建 1,docker镜像制作 docker官方和个人发布的镜像由于版本等各种原因,漏洞较多,已统计Docker Hub超过30%的官方镜像 ...

  7. Windows 7 PE RAM 引导盘及WIM 镜像制作

    通过Windows PE引导盘和ImageX命令,可以轻松将系统及安装好的软件打包成WIM镜像,以便日后恢复系统之用. 本文首先介绍Windows 7 PE引导盘制作过程,然后再对Windows系统进 ...

  8. Docker镜像制作规范

    Docker镜像制作规范 镜像(Image)是在基础文件集(root filesystem)之上依次变更的集合,及在容器运行的默认执行参数. 术语 层(layer) 镜像由层(layer)组成.每一层 ...

  9. openStack镜像制作

    openStack镜像制作 参考链接: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/OpenStack ...

  10. 嵌入式文件系统镜像制作及烧写

    将rootfs和userdata两个目录分别制作为镜像文件进行烧写: 镜像文件对应文件系统类型的选择,采用: rootfs制作为rootfs.img镜像,采用的文件系统类型为cramfs,只读,用于保 ...

最新文章

  1. 微信小程序获取用户设备的信息
  2. js 字符串转成货币格式, js转货币
  3. 用 Go 构建一个区块链 -- Part 5: 地址
  4. 申请表怎么填才能提高信用卡额度?
  5. 通过AVFoundation框架获取摄像头数据
  6. C++ 定义 string
  7. 实验三十三、标准访问控制列表的配置
  8. JavaScript教程带你快速入门
  9. 高德地图与百度地图的经纬度偏差纠正
  10. 常用的数字正则表达式
  11. 文化传媒婚纱摄影类网站织梦模板免费下载
  12. Python吴恩达深度学习作业13 -- Keras教程
  13. 短视频三要素之封面,如何设计引人关注的封面呢?
  14. 【Linux】查看文件内容的5个常用命令
  15. 为什么淘宝搜索宝贝排名先后不一样,原理是什么?
  16. oracle数据库emp表的内容,oracle数据库emp表
  17. 《线性代数》同济版知识梳理
  18. paj7620移植笔记1
  19. Qt数据可视化(QPolarChart雷达图)
  20. armbian/debian/linux 硬盘休眠

热门文章

  1. 旅游后台管理系列——使用maven构建工程
  2. spring mvc组件以及架构流程详解
  3. 【android自定义控件】自定义View属性
  4. CF651A Joysticks
  5. react-hooks学习笔记
  6. rc.local文件开机不执行
  7. 安全教育平台账号后四位_2020中小学国家安全教育专题活动入口官网:学校安全教育平台...
  8. mysql 全文所有_MySQL中的全文搜索
  9. Python学习-第三天-面向对象编程基础
  10. Ceph添加、删除osd及故障硬盘更换