使用Docker构建你的第一个服务
1. 感受一下Docker的便捷
项目源码 https://github.com/MoonShining/dockernize-grape-helloworld
clone下来以后运行,cd到项目目录下,运行
docker build -t api-sample .
docker run -p 8080:8080 api-sample:latest
复制代码
就可以访问localhost:8080看到效果了.
2. 具体步骤
- 使用你喜欢的语言写一个能输出hello world的HTTP服务
- 告诉docker你需要如何构建这个服务(Dockerfile) 因为Ruby程序员不多,我就不讲解ruby代码了,只需要知道一点.
在clone项目以后运行
bundle install
rackup -o 0.0.0.0 -p 8080
复制代码
这样就可以在本地直接运行起Ruby版本的hello world了.
3. Dockerfile
FROM ruby:2.3.1
LABEL maintainer "zhoubjnb@163.com"
WORKDIR /app
ADD . /app
RUN bundle install
EXPOSE 8080
CMD ["rackup","-o","0.0.0.0","-p","8080"]
复制代码
这个配置文件主要做了几件事
- 必须指定一个Base Image,我们用ruby:2.3.1这个镜像
- 本镜像的维护者信息
- 设定一个Docker镜像中的工作目录,作为接下来RUN和CMD指令的运行目录
- 把当前目录映射到容器中的/app
- 为Ruby工程安装依赖
- 暴露容器的8080端口出来
- 在容器中运行rackup命令开启服务
这样,无论我们的底层系统是什么,只要安装了Docker,就可以很方便的运行程序,无需关心各种依赖
参考
- 《微服务架构与实践》 ThoughtWorks中的人写的一本书,很空泛,不推荐阅读...
- Docker References(Dockerfile的各种指令意义) https://docs.docker.com/engine/reference/builder
使用Docker构建你的第一个服务相关推荐
- web重启tomcat_使用docker构建jdk镜像和web服务镜像
一.构建jdk镜像 FROM centos WORKDIR /home/lily ADD jdk-8u91-linux-x64.tar.gz /home/lily RUN mv jdk1.8.0_91 ...
- Spring Boot微服务,Docker和Kubernetes研讨会–第一部分
在本系列研讨会中,我们将使用spring boot,docker构建一些微服务,然后将它们部署到kubernetes中. 因此,让我们开始吧. 首先,我们需要定义一个问题陈述. 可以说我们要建立一个订 ...
- 手把手教你用Spring Cloud和Docker构建微服务
什么是Spring Cloud? Spring Cloud 是Pivotal提供的用于简化分布式系统构建的工具集.Spring Cloud引入了云平台连接器(Cloud Connector)和服务连接 ...
- 使用Docker构建服务(6)
1. 构建第一个应用 要构建的第一个应用是使用Jekyll框架的自定义网站.我们会构建以下两个镜像. ** 一个镜像安装了Jekyll及其他用于构建Jekyll网站的必要的软件包. ** 一个镜像通过 ...
- iis7 您无权使用所提供的凭据查看此目录或页面。_使用Spring Cloud和Docker构建微服务架构
原文:https://dzone.com/articles/microservice-architecture-with-spring-cloud-and-do作者:Alexander Lukyanc ...
- docker构建容器服务
文章目录 构建容器服务 构建sshd容器服务步骤 构建systemctl容器服务步骤 容器开启ssh 配置systmctl docker容器中配置nginx docker容器中配置tomcat doc ...
- Docker+Jenkins+Seneca构建去集中化微服务架构
点击上方的终端研发部,右上角选择"设为星标" 前言 在微服务架构中,服务发现一直是一件比较复杂的事.而且服务发现式的架构处理不好,容易产生集中化.同时,微服务的提供,不可避免的需要 ...
- Docker构建Nginx+Tomcat动静分离架构
随着主流Nginx WEB服务器的发展,现在基于Nginx的WEB服务器已广泛应用于各大互联网企业.今天我们来使用docker构建我们的Linux+Nginx+Tomcat动静分离服务器. 1) ...
- Hyperledger Fabric(构建你的第一个网络)
构建你的第一个网络 这些说明已经过验证,可以与最新的稳定Docker镜像和提供的tar文件中预编译的安装实用程序一起工作,如果使用当前主分支中的镜像或工具运行这些命令,则可能会看到配置和紧急错误. 构 ...
最新文章
- java.sql.SQLException: Unknown system variable 'query_cache_size'
- cloud foundry部署报错TypeError: can't convert Hash into String
- 关于大型asp.net 应用系统的架构 —— 如何做到高性能高可伸缩性[转]
- greaterT()和lessT()
- 浅谈SQL Server 对于内存的管理
- 8086指令系统 操作数地址,双操作数,单操作数,无操作数指令。一,传送类指令;二,二、算数运算类指令
- Spring Batch_Parallel Steps
- 牛客网模拟笔试——庆祝61(JavaScript)
- HTML5手机开发——滚动和惯性缓动
- KVM下桥接的设置(Ubuntu)
- 利用爬虫技术清理微博“僵尸粉”
- 为什么要参加hadoop培训
- B360主板i5 8400装Win7记录
- kingcms php 搜索,KingCMS内容管理系统
- C/C++黑魔法-利用include宏读文件
- intel 服务器芯片8180,Intel Xeon Platinum 8180M报价52000
- 7-8 最佳情侣身高差(10 分)
- 高等数学函数图像绘制
- java英文翻译_关于JAVA领域的外文翻译(适用于毕业论文外文翻译+中英文对照).doc...
- Parallels Desktop 任务管理器被禁用,CPU占用大,风扇声巨大处理办法
热门文章
- linux svn同步到本地目录,LINUX中SVN服务的搭建与实现SVN 自动同步到web目录,SVN自动启动...
- 五年级数学上册用计算机探索规律,人教版小学五年级数学上册《用计算器探索规律》课后反思...
- 判断鼠标是否在元素上_能不能从大便上判断出一个人是否患有结肠癌?
- linux so_nosigpipe,TCP_NODELAY/SO_LINGER/SO_NOSIGPIPE/MSG_NOSIGNAL设置
- 【TCP传输数据-键盘录入】
- PAT 1007 Maximum Subsequence Sum
- Flask 框架app = Flask(__name__) 解析
- hdu-6165(tarjan+topusort)
- 记录下面试中的回答的不好的问题
- ComponentName的意思