Docker 入门指南——部署常用服务示例
MongoDB
FROM centos:centos7
MAINTAINER The CentOS Project <cloud-ops@centos.org>
RUN yum -y update; yum clean all
RUN yum -y install epel-release; yum clean all
RUN yum -y install mongodb-server; yum clean all
RUN mkdir -p /data/db
EXPOSE 27017
ENTRYPOINT ["/usr/bin/mongod"]
参考:
Redis
FROM centos:centos7
MAINTAINER The CentOS Project <cloud-ops@centos.org>
LABEL io.k8s.description="Redis is an open source, in-memory data structure store, used as database, cache and message broker." \
io.k8s.display-name="Redis 2.8.19-2.el7" \
io.openshift.expose-services="6379:redis" \
io.openshift.tags="database,redis,redis3"
LABEL Name="centos/redis-28-centos7" \
Version="2.8.19" \
Release="2" \
Architecture="x86_64"
RUN yum -y --setopt=tsflags=nodocs update && \
yum -y --setopt=tsflags=nodocs install epel-release && \
yum -y --setopt=tsflags=nodocs install redis && \
yum clean all
COPY redis-master.conf /redis-master/redis.conf
COPY redis-slave.conf /redis-slave/redis.conf
COPY entrypoint /entrypoint
RUN mkdir /redis-master-data && \
chmod 755 /entrypoint /redis-master-data && \
chown 997 /redis-master-data
EXPOSE 6379
# By default will run as random user on openshift and the redis user (997)
# everywhere else
USER 997
CMD [ "/entrypoint" ]
ENTRYPOINT [ "sh", "-c" ]
参考:
部署 Flask 应用
当前目录是get-pip
,目录结构如下:
$ tree .
.
├── app.py
├── Dockerfile
├── README.md
└── requirements.txt
app.py
:
# coding:utf-8
from flask import request, Flask
app = Flask(__name__)
@app.route("/ip", methods=["GET"])
def get_my_ip():
return request.remote_addr
@app.route('/', methods=["GET"])
def hello_world():
return 'Hello World! From IP: {}'.format(get_my_ip())
if __name__ == '__main__':
# 默认的端口就是 5000,你可以指定其他端口,例如 8081
app.run(port=5000, host='0.0.0.0', debug=True)
requirements.txt
:
Flask
requests
Dockerfile
:
FROM python:3.7
LABEL maintainer="michael"
ENV LANG C.UTF-8
COPY . /app
COPY ./.pip/pip.conf ~/.pip/pip.conf
WORKDIR /app
RUN pip install -r requirements.txt --proxy="http://127.0.0.1:3128"
ENTRYPOINT ["python"]
CMD ["app.py"]
在get-pip
目录下,构建镜像:
docker build -t registry.domain.com/michael/get-ip:latest .
推送镜像:
docker login -u micahel registry.domain.com
docker push registry.domain.com/michael/get-ip:latest
因为网络的原因,无法直接连接 pypi 官方源,所以,在 pip install
时,使用了 --proxy
参数来指定代理。
Flask 参考
Pip 代理
- Github-pip doesn't respect proxy while installing packages from requirements file
- SOF-Pip inside dockerfile under proxy
- SOF-Customize ONBUILD environment in a dockerfile 问题中附上了 pip 源设置的官方连接
参考
- Docker 快速入门 某公司的内部指导,有参考意义
Docker 入门指南——部署常用服务示例的更多相关文章
- docker入门与部署微服务--学习笔记
最近公司进一步去windows,走向 linux+云化. 原来的一大坨windows虚拟机服务器都要转向linux, 既然走向linux的话,那么docker肯定是要涉足的. 故学习了docker入门 ...
- Docker 入门指南——常用命令
前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...
- Docker 入门指南
Docker 入门指南 目录 基础概念 安装教程 基本操作 常用安装 构建操作 容器编排 壹.基础概念 什么是Docker? Docker是基于Go开发的应用容器引擎,属于 Linux 容器的一种封装 ...
- Docker 入门 到部署Web 程序- (阿里面试常用的docker命令和优点)
最近阿里的面试官问我Docker是做什么用的,我记得之前360和美团,京东的都问过,但是一直没时间看,最近有时间了,系统的学习了一下Docker,在此做一下记录,方便各位看官学习交流 一.Docker ...
- docker 入门6 - 部署 【翻译】
开始,第 6 部分:部署应用 先决条件 安装 Docker. 获取第 3 部分先决条件中所述的 Docker Compose. 获取 Docker Machine,如第 4 部分先决条件中所述. 阅读 ...
- docker入门资料及常用命令
Docker17中文开发手册 :https://www.php.cn/manual/view/36147.html Linux部署Docker及常用命令: https://www.cnblog ...
- docker入门指南(转载)
原文: http://bg.biedalian.com/2014/11/20/docker-start.html 关于 docker 今天云平台的同事提到, 现在的运维就是恶性循环, 因为大家都在申请 ...
- 【Docker】docker 入门以及一些常用指令
概述 Docker是一款针对程序开发人员和系统管理员来开发.部署.运行应用的一款虚拟化平台.Docker 可以让你像使用集装箱一样快速的组合成应用,并且可以像运输标准集装箱一样,尽可能的屏蔽代码层面的 ...
- docker入门篇 部署springboot项目
安装docker Ubuntu16.04安装Docker 使用docker 注册docker服务 systemctl enable docker systemctl status docker 然后在 ...
随机推荐
- jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法
1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是“a ...
- Javascript-双色球
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- activiti 项目变更控制器
package com.xinwei.process.controller; import java.util.Calendar; import java.util.HashMap; import j ...
- poj2114 寻找树上存在长度为k点对,树上的分治
寻找树上存在长度为k点对,树上的分治 代码和 这个 差不多 ,改一下判断的就好 #include <iostream> #include <algorithm> #inc ...
- Rower Bo (高数 + 物理)
#include<bits/stdc++.h> #define esp (1e-5) using namespace std; int main(){ int a; double v1, ...
- Sqoop 学习之路
sqoop 基础知识和基本操作可以参考这篇博客:https://www.cnblogs.com/qingyunzong/p/8807252.html#_label3
- 转:【专题七】UDP编程补充——UDP广播程序的实现
上次因为时间的关系,所以把上一个专题遗留下的一个问题在本专题中和大家分享下,本专题主要介绍下如何实现UDP广播的程序,下面就直接介绍实现过程和代码以及运行的结果. 一.程序实现 UDP广播程序的实现代 ...
- Codeforces 579A. Raising Bacteria
You are a lover of bacteria. You want to raise some bacteria in a box. Initially, the box is empty. ...
- java加载配置文件信息
#基金数据存放根目录fund_save_root_path=E:/fundCrawling #龙虎榜数据存放根目录long_hu_root_path=E:/longHuCrawling #巨潮数据存放 ...
- Inferred type 'S' for type parameter 'S' is not within its bound;
在使用springboot 方法报错: Inferred type 'S' for type parameter 'S' is not within its bound; should extends ...