1、最常用方式配置进程管理工具Supervisor

2、最简单的就是把多个启动命令放到一个启动脚本里面,启动的时候直接启动这个脚本

第一种方式:

1、构建基础镜像

FROM lmurawsk/python2.7
MAINTAINER adolf "zhangmingcheng@pansoft.com"
RUN apt-get update && apt-get install -y supervisor
RUN mkdir -p /var/log/supervisor
RUN mkdir -p /opt/jdk
ADD jdk /opt/jdk
ENV JAVA_HOME /opt/jdk
ENV PATH $PATH:$JAVA_HOME/bin
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple imagehash
ADD web.py-0.38 /opt/web.py-0.38
WORKDIR /opt/web.py-0.38/
RUN easy_install web.py

2、配置 supervisord.conf

[supervisord]
nodaemon=true [program:webpy]
command=python /root/imagedhash/rest.py 0.0.0.0:8888
stdout_logfile=/root/log/rest.log
stderr_logfile=/root/log/rest.log [program:imagecheck]
command=java -jar /root/imagedhash/app.jar
stdout_logfile=/root/log/checks.log
stderr_logfile=/root/log/checks.log

3、构建镜像

FROM imagecheck:init
MAINTAINER adolf "zhangmingcheng@pansoft.com"
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
RUN mkdir -p /root/imagedhash
RUN mkdir -p /root/images
RUN mkdir -p /root/log
ADD rest.py /root/imagedhash
WORKDIR /root/imagedhash
ADD ShowImage.jar app.jar
EXPOSE 8888 8080
CMD ["/usr/bin/supervisord"]

第二种方式:

1、构建基本镜像

Dockerfile

FROM lmurawsk/python2.7
MAINTAINER adolf "zhangmingcheng@pansoft.com"
RUN mkdir -p /opt/jdk
ADD jdk /opt/jdk
ENV JAVA_HOME /opt/jdk
ENV PATH $PATH:$JAVA_HOME/bin
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple imagehash
ADD web.py-0.38 /opt/web.py-0.38
WORKDIR /opt/web.py-0.38/
RUN easy_install web.py

2、构建相似影像查重镜像

Dockerfile

FROM imagecheck:init
MAINTAINER adolf "zhangmingcheng@pansoft.com"
RUN mkdir -p /root/imagedhash
RUN mkdir -p /root/images
ADD rest.py /root/imagedhash
WORKDIR /root/imagedhash
ADD ImagesCheck.jar app.jar
ADD dhash.sh dhash.sh
EXPOSE 8080
CMD ["/root/imagedhash/dhash.sh","run"]

dhash.sh

nohup python rest.py 8888 > out.log 2>&1 &
java -jar app.jar

rest.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2018-01-04
# @Author : zhangmingcheng import web
from PIL import Image
import imagehash
import glob
import json
import os,sys urls=(
'/images/getImageDhash','get_imagedhash'
)
app = web.application(urls,globals()) class get_imagedhash:
def GET(self):
path = web.input().path
image = Image.open(path)
h = str(imagehash.dhash(image))
return h

docker容器多服务(不推荐)的更多相关文章

  1. [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务

    转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...

  2. docker 容器内服务自启动

    centos6/7 有区别先说6 centos6: 方式一:rc.local + 容器内的启动脚本 1.chkconfig docker on #docker开机自启动2.[root@master y ...

  3. Docker 容器暂停服务 - 七

    docker pause :暂停容器中所有的进程docker unpause :恢复容器中所有的进程 docker pause [OPTIONS] CONTAINER [CONTAINER...] d ...

  4. docker容器的服务发现:consul

    官网:https://www.consul.io 官网文档:https://www.consul.io/docs简介 consul是一个服务发现的组件,在docker世界中他比较流行,主要是consu ...

  5. Docker容器内服务自启

    创建容器时需要配置--privileged和容器启动后执行的命令为/sbin/init/. docker run -d -it --name example -p 3308:3306 -p 2080: ...

  6. 浅析Docker容器的应用场景

    本文来自网易云社区 作者:娄超 过去几年开源界以openstack为代表的云计算持续火了好久,这两年突然又冒出一个叫Docker的容器技术,其发展之迅猛远超预料.网上介绍Docker容器的文章已经很多 ...

  7. (转)外网如何访问docker容器

    借鉴:https://blog.csdn.net/lvshaorong/article/details/69950694 Docker容器非常轻量,系统开销非常少,比VMware或者VirtualBo ...

  8. windows10配置Docker容器独立IP地址互相通信

    Docker官方推荐我们通过端口映射的方式把Docker容器的服务提供给宿主机或者局域网其他容器使用.一般过程是: 1.Docker进程通过监听宿主机的某个端口,将该端口的数据包发送给Docker容器 ...

  9. 1.Docker容器学习之新生入门必备基础知识

    0x00 Docker 快速入门 1.基础介绍 描述:Docker [ˈdɑ:kə(r)] 是一个基于Go语言开发实现的遵循Apache 2.0协议开源项目,目标是实现轻量级的操作系统虚拟化解决方案: ...

随机推荐

  1. mac yarn 安装

    通过HomeBrew安装 brew install yarn 升级yarn brew upgrade yarn 查看版本 yarn -v 1.15.2

  2. web项目加载图片资源

    在web项目中,用户会上传图片,这些图片应该存在服务器硬盘上,而不是存在数据库或者应用程序路径下,在数据库存入文件的路径. 这是一个比较重要的问题,也是开发过程中也解决的问题.当然,我可以跳过,但是成 ...

  3. 利用profiler工具提高NC-Verilog仿真效率

    大家进行芯片验证时,一般都会遇到仿真速度很慢.效率不高的问题.目前发现了一个方法可以debug上述问题.即,利用NC的profiler工具. 关于profiler工具,我把文档<Cadence® ...

  4. Nginx作为TCP负载均衡

    参考文档:https://www.cnblogs.com/stimlee/p/6243055.html Nginx在1.9版本以后支持TCP负载均衡,模块默认是没有编译的,需要编译时添加—with-s ...

  5. Ubuntu设置DNS永久生效

    环境查看 设置临时生效,修改配置文件/etc/resolv.conf nameserver 202.96.134.133 重启失效 设置永久生效,修改网卡配置文件/etc/network/interf ...

  6. ThinkPad X1 Carbon 2018 Windows 10无法关机的问题

    最近两天在工作中很多同事都遇到了自己的X1电脑关机时自动重启的现象,这个问题让我在知乎.微软支持.国外各种科技论坛找到了很多类似的症状. 但是针对同事们遇到的问题,解决方案异常的简单:就是下载联想驱动 ...

  7. 语音识别bug

    # 如果消息为200,则表示talker在交互过程中未识别到用户的语音输入,开启人脸验证确认用户是否还在面前(排除噪声的影响) # 确认时间为3秒,3秒都没有人脸,则确认用户不在.确认用户还在,则提醒 ...

  8. HDU 4347 - The Closest M Points - [KDTree模板题]

    本文参考: https://www.cnblogs.com/GerynOhenz/p/8727415.html kuangbin的ACM模板(新) 题目链接:http://acm.hdu.edu.cn ...

  9. [No0000160]常用C# 正则表达式大全

    正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的正则表达式 ...

  10. ssm,dubbo框架搭建得配置文件

    在建立了parent,common,manager(pojo,mapper,sercie,web)的maven工程后,开始导入添加配置文件: pojo,mapper 最终会打成jar包,service ...