使用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"]

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

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

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

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,777评论 0 120
  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 1,975评论 0 7
  • 0. 前言 docker是什么?docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可...
    sessionboy阅读 4,040评论 2 49
  • 01 珠海的夏季,广阔无垠的天空如海一般澄澈透蓝,太阳公公每日准时打卡站岗,烈日炎炎。燥热的天气,林荫道上,唯剩下...
    苏可恩阅读 342评论 2 6
  • 看过一本明朝历史书中讲到,成为沙场名将之必过的六关: 1.过硬的军事理论基础(《孙子兵法》、《吴子兵法》等...
    秋阡陌阅读 749评论 0 1

友情链接更多精彩内容