OSX下用docker部署多个container并安装Ruby探针的操作流程

最近几天一直在折腾docker的下部署多个Ruby探针的问题,走了些弯路,目前有了点小成果,记录如下,以供后来采坑之人的可以绕行:

运行系统环境为Mac OSX Yosemite版本10.10.4。

从docker的官方文档中看了一下mac下的安装步骤和无脑学习课程:

下载的安装包为:DockerToolbox-1.8.2a.pkg

安装后会出现2个应用:Docker Quickstart(终端操作) TerminalKitematic (Beta)(图形界面操作)[对于程序员果断无视第2个应用,以后再研究]

要再mac下运行docker,需要先运行Docker Quickstart.会出现下图:

OSX下用docker部署多个container并安装Ruby探针的操作流程_第1张图片

1.新建立一个目录my_rails

2.在my_rails目录下创建Dockerfile,内容如下:

FROM ruby:2.2

RUN apt-get update && apt-get install -y nodejs --no-install-recommends && rm -rf /var/lib/apt/lists/*

RUN apt-get update && apt-get install -y mysql-client postgresql-client sqlite3 --no-install-recommends && rm -rf /var/lib/apt/lists/*

RUN gem source -r https://rubygems.org/

RUN gem source -a https://ruby.taobao.org

RUN gem install rails -v 4.2.4

RUN mkdir /myapp

WORKDIR /myapp

RUN rails new . --force --skip-bundle

ADD Gemfile /myapp/

RUN bundle install

ADD oneapm.yml /myapp/config/

3.在my_rails目录下,创建Gemfile,将我们要安装的gem提前写好,内容就不贴了,自己生成一份看一下就知道,需要注意2个事情:

(1)最好改一个source,默认的https://rubygems.org总是报ssl联网超时,改成淘宝的源 https://ruby.taobao.org就没有这个问题,对于住在长城脚下的人你懂得;

(2)本文主题是安装Ruby探针,故需要 gem ‘oneapm_rpm’放到Gemfile :)

4.创建oneapm.yml,并配置选项。

5. 在my_rails目录运行 docker build -t my_rails .

会看到docker正在帮我们创建镜像文件,build成功后,用docker images看一下 就可以看到my_rails镜像已存在了

6. 接下来我们就可以运行docker,开启我们的容器之旅了。

docker run -d -p 3000:3000 my_rails rails s -p 3000 -b ‘0.0.0.0'

docker run -d -p 3001:3001 my_rails rails s -p 3001 -b ‘0.0.0.0'

上面开启了2个container,在mac下需要注意2个事情[咋又是2个]:

(1) 要想从mac中访问需要使用docker machine所在的ip才能访问(使用docker-machine ip default命令查看) 至于原因可以看这个。

(2) 启动rails时需要指定bind参数 “-b ‘0.0.0.0’”,确保容器外可以使用ip+port可以访问到。

7. 在浏览器中查看运行情况:

OSX下用docker部署多个container并安装Ruby探针的操作流程_第2张图片

表明容器启动成功,看一下探针情况:

显示为2个探针实例,再查看一下探针的详情

OSX下用docker部署多个container并安装Ruby探针的操作流程_第3张图片

数据已抓回,验证成功。

总结:

在mac下运行docker流程还是比较简单了,感觉docker还是挺有意思,以后可以用docker运行rails不同版本的环境,用来测试一下探针兼容性。

你可能感兴趣的:(OSX下用docker部署多个container并安装Ruby探针的操作流程)