博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Docker构建你的第一个服务
阅读量:6595 次
发布时间:2019-06-24

本文共 958 字,大约阅读时间需要 3 分钟。

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 installrackup -o 0.0.0.0 -p 8080复制代码

这样就可以在本地直接运行起Ruby版本的hello world了.

3. Dockerfile

FROM ruby:2.3.1LABEL maintainer "zhoubjnb@163.com"WORKDIR /appADD . /appRUN bundle installEXPOSE 8080CMD ["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

转载于:https://juejin.im/post/5a31d34a6fb9a0450f21f204

你可能感兴趣的文章
Linux socket多进程服务器框架三
查看>>
Debug.print的用法
查看>>
常用名词
查看>>
第一百三十四节,JavaScript,封装库--遮罩锁屏
查看>>
RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-新增锁定用户与解除锁定用户的功能...
查看>>
vue1.0 的过滤器
查看>>
EventCache表太大, 怎么办?
查看>>
Top 10 mistakes in Eclipse Plug-in Development
查看>>
Directx教程(23) 简单的光照模型(2)
查看>>
Java 并发性和多线程
查看>>
IE6下frameset横向滚动条BUG
查看>>
Python线程专题9:线程终止与挂起、实用工具函数
查看>>
Unity中关于作用力方式ForceMode的功能注解
查看>>
view生命周期的一个找父类的控件的方法
查看>>
物理读之LRU(最近最少被使用)的深入解析
查看>>
Python2.7升级到3.0 HTMLTestrunner报错解决方法
查看>>
建立Git版本库管理框架例子
查看>>
nginx防止部分DDOS攻击
查看>>
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字......
查看>>
number_format() 函数定义和用法
查看>>