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协议开源项目,目标是实现轻量级的操作系统虚拟化解决方案: ...
随机推荐
- HBuilder-svn安装与使用【原创】
目录 安装 使用 步骤 1.安装 1.1工具/插件安装 1.2选择svn,点击安装 1.3完成后,重启即可 -------------------------- ...
- Ingeter与int的比较
,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false? 首 ...
- asp.net利用存储过程分页代码
-最通用的分页存储过程 -- 获取指定页的数据 CREATE PROCEDURE Pagination ), -- 表名 ) = '*', -- 需要返回的列 )='', -- 排序的字段名 , -- ...
- Nodejs----注册登录
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- matplotlib --> r`$...$`
文档中介绍的很详细:https://matplotlib.org/tutorials/text/mathtext.html matplotlib Tutoials --> Text --> ...
- 关于mysql远程连接
windows环境下简单,这里讲linux环境下的 首先,linux系统有一道防火墙 我用的是ubutun16.04LTS 要用ufw工具(命令)开启3306端口(ufw allow ) (如果安装的 ...
- [No0000DA]WPF ControlTemplate简介
一.简介 WPF包含数据模板和控件模板,其中控件模板又包括ControlTemplate和ItemsPanelTemplate,这里讨论一下ControlTemplate.其实WPF的每一个控件都有一 ...
- confd template src格式和 templates 语法
Template Resources Template resources are written in TOML and define a single template resource. Tem ...
- ARCSDE直连Oracle时出现错误Failed to connect to the specified server. Underlying DBMS error[ORA-12154: TNS:could not resolve the connect identifier specified. No extended error]
买了新笔记本,装软件. 在ARCSDE直连Oracle时遇到问题. esri官网给的解释是因为安装arcgis时安装目录里有特殊字符(详见:https://support.esri.com/en/te ...
- 【实战解析】基于HBase的大数据存储在京东的应用场景
京东技术 https://mp.weixin.qq.com/s?src=11×tamp=1551342955&ver=1455&signature=0hYp8OsxY ...