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"]
复制代码

这个配置文件主要做了几件事

  1. 必须指定一个Base Image,我们用ruby:2.3.1这个镜像
  2. 本镜像的维护者信息
  3. 设定一个Docker镜像中的工作目录,作为接下来RUN和CMD指令的运行目录
  4. 把当前目录映射到容器中的/app
  5. 为Ruby工程安装依赖
  6. 暴露容器的8080端口出来
  7. 在容器中运行rackup命令开启服务

这样,无论我们的底层系统是什么,只要安装了Docker,就可以很方便的运行程序,无需关心各种依赖

参考

  • 《微服务架构与实践》 ThoughtWorks中的人写的一本书,很空泛,不推荐阅读...
  • Docker References(Dockerfile的各种指令意义) https://docs.docker.com/engine/reference/builder

使用Docker构建你的第一个服务相关推荐

  1. 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 ...

  2. Spring Boot微服务,Docker和Kubernetes研讨会–第一部分

    在本系列研讨会中,我们将使用spring boot,docker构建一些微服务,然后将它们部署到kubernetes中. 因此,让我们开始吧. 首先,我们需要定义一个问题陈述. 可以说我们要建立一个订 ...

  3. 手把手教你用Spring Cloud和Docker构建微服务

    什么是Spring Cloud? Spring Cloud 是Pivotal提供的用于简化分布式系统构建的工具集.Spring Cloud引入了云平台连接器(Cloud Connector)和服务连接 ...

  4. 使用Docker构建服务(6)

    1. 构建第一个应用 要构建的第一个应用是使用Jekyll框架的自定义网站.我们会构建以下两个镜像. ** 一个镜像安装了Jekyll及其他用于构建Jekyll网站的必要的软件包. ** 一个镜像通过 ...

  5. iis7 您无权使用所提供的凭据查看此目录或页面。_使用Spring Cloud和Docker构建微服务架构

    原文:https://dzone.com/articles/microservice-architecture-with-spring-cloud-and-do作者:Alexander Lukyanc ...

  6. docker构建容器服务

    文章目录 构建容器服务 构建sshd容器服务步骤 构建systemctl容器服务步骤 容器开启ssh 配置systmctl docker容器中配置nginx docker容器中配置tomcat doc ...

  7. Docker+Jenkins+Seneca构建去集中化微服务架构

    点击上方的终端研发部,右上角选择"设为星标" 前言 在微服务架构中,服务发现一直是一件比较复杂的事.而且服务发现式的架构处理不好,容易产生集中化.同时,微服务的提供,不可避免的需要 ...

  8. Docker构建Nginx+Tomcat动静分离架构

    随着主流Nginx WEB服务器的发展,现在基于Nginx的WEB服务器已广泛应用于各大互联网企业.今天我们来使用docker构建我们的Linux+Nginx+Tomcat动静分离服务器. 1)    ...

  9. Hyperledger Fabric(构建你的第一个网络)

    构建你的第一个网络 这些说明已经过验证,可以与最新的稳定Docker镜像和提供的tar文件中预编译的安装实用程序一起工作,如果使用当前主分支中的镜像或工具运行这些命令,则可能会看到配置和紧急错误. 构 ...

最新文章

  1. java.sql.SQLException: Unknown system variable 'query_cache_size'
  2. cloud foundry部署报错TypeError: can't convert Hash into String
  3. 关于大型asp.net 应用系统的架构 —— 如何做到高性能高可伸缩性[转]
  4. greaterT()和lessT()
  5. 浅谈SQL Server 对于内存的管理
  6. 8086指令系统 操作数地址,双操作数,单操作数,无操作数指令。一,传送类指令;二,二、算数运算类指令
  7. Spring Batch_Parallel Steps
  8. 牛客网模拟笔试——庆祝61(JavaScript)
  9. HTML5手机开发——滚动和惯性缓动
  10. KVM下桥接的设置(Ubuntu)
  11. 利用爬虫技术清理微博“僵尸粉”
  12. 为什么要参加hadoop培训
  13. B360主板i5 8400装Win7记录
  14. kingcms php 搜索,KingCMS内容管理系统
  15. C/C++黑魔法-利用include宏读文件
  16. intel 服务器芯片8180,Intel Xeon Platinum 8180M报价52000
  17. 7-8 最佳情侣身高差(10 分)
  18. 高等数学函数图像绘制
  19. java英文翻译_关于JAVA领域的外文翻译(适用于毕业论文外文翻译+中英文对照).doc...
  20. Parallels Desktop 任务管理器被禁用,CPU占用大,风扇声巨大处理办法

热门文章

  1. linux svn同步到本地目录,LINUX中SVN服务的搭建与实现SVN 自动同步到web目录,SVN自动启动...
  2. 五年级数学上册用计算机探索规律,人教版小学五年级数学上册《用计算器探索规律》课后反思...
  3. 判断鼠标是否在元素上_能不能从大便上判断出一个人是否患有结肠癌?
  4. linux so_nosigpipe,TCP_NODELAY/SO_LINGER/SO_NOSIGPIPE/MSG_NOSIGNAL设置
  5. 【TCP传输数据-键盘录入】
  6. PAT 1007 Maximum Subsequence Sum
  7. Flask 框架app = Flask(__name__) 解析
  8. hdu-6165(tarjan+topusort)
  9. 记录下面试中的回答的不好的问题
  10. ComponentName的意思