docker容器多服务(不推荐)
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容器多服务(不推荐)的更多相关文章
- [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务
转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...
- docker 容器内服务自启动
centos6/7 有区别先说6 centos6: 方式一:rc.local + 容器内的启动脚本 1.chkconfig docker on #docker开机自启动2.[root@master y ...
- Docker 容器暂停服务 - 七
docker pause :暂停容器中所有的进程docker unpause :恢复容器中所有的进程 docker pause [OPTIONS] CONTAINER [CONTAINER...] d ...
- docker容器的服务发现:consul
官网:https://www.consul.io 官网文档:https://www.consul.io/docs简介 consul是一个服务发现的组件,在docker世界中他比较流行,主要是consu ...
- Docker容器内服务自启
创建容器时需要配置--privileged和容器启动后执行的命令为/sbin/init/. docker run -d -it --name example -p 3308:3306 -p 2080: ...
- 浅析Docker容器的应用场景
本文来自网易云社区 作者:娄超 过去几年开源界以openstack为代表的云计算持续火了好久,这两年突然又冒出一个叫Docker的容器技术,其发展之迅猛远超预料.网上介绍Docker容器的文章已经很多 ...
- (转)外网如何访问docker容器
借鉴:https://blog.csdn.net/lvshaorong/article/details/69950694 Docker容器非常轻量,系统开销非常少,比VMware或者VirtualBo ...
- windows10配置Docker容器独立IP地址互相通信
Docker官方推荐我们通过端口映射的方式把Docker容器的服务提供给宿主机或者局域网其他容器使用.一般过程是: 1.Docker进程通过监听宿主机的某个端口,将该端口的数据包发送给Docker容器 ...
- 1.Docker容器学习之新生入门必备基础知识
0x00 Docker 快速入门 1.基础介绍 描述:Docker [ˈdɑ:kə(r)] 是一个基于Go语言开发实现的遵循Apache 2.0协议开源项目,目标是实现轻量级的操作系统虚拟化解决方案: ...
随机推荐
- 跟bWAPP学WEB安全(PHP代码)--XPath注入
XML/Xpath注入 看了下,A2里面是认证与会话管理的破坏或称之为绕过,没有特别要写的,很多就是小问题,可能会将这类问题放在最后写一下.一篇博客,这里还是更多的着重在能够获取信息或者服务器权限的漏 ...
- 36个让人惊讶的 CSS3 动画效果演示【转】
本文收集了35个惊人的 CSS3 动画演示,它们将证明 CSS3 Transform 和 Transition 属性的强大能力.CSS 是网页设计非常重要的一部分,随着越来越多的浏览器对 CSS3 支 ...
- B - 考试排名
C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么"AC",要么错误,不管怎样错法,总是给你记上一笔,表明 ...
- 微信小程序:bindtap等事件传参
事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. 事件对象可以携带额外信息,如 id, data ...
- PAT甲级1013-1014-1015
题目:1013 Battle Over Cities 思路:城市数也就1000, 对于每次询问暴力bfs一下看一下有多少连通块就行了.答案就是联通块数减一. #include<stdio.h&g ...
- Processing-基础小坑-
x 坑A:) 新建一个"Walker"项目,Walker.pde,必须在Walker文件夹下... 刚开始以为如果一个文件需要引用另外一个文件中的类,只要把这两个文件放一个文件夹下 ...
- HDU 1247 - Hat’s Words - [字典树水题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1247 Problem DescriptionA hat’s word is a word in the ...
- POJ 1854 - Evil Straw Warts Live
Description A palindrome is a string of symbols that is equal to itself when reversed. Given an inpu ...
- NLP去特殊字符
在自然语言处理中,我们有时对文本进行处理,需要去除一些特殊符号,保留中文,这是在预处理过程中常用到的.分享给你,希望对你有帮助! import re def delete_sysbol(line): ...
- http协议-https协议-相对协议
http协议.https协议.相对协议 http://www.baidu.com (使用http协议访问百度) https://wwww.badu.com (使用https协议访问百度) //www. ...