内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

如何在測(cè)試中使用Docker

本篇文章為大家展示了如何在測(cè)試中使用Docker,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

為義安等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及義安網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、義安網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

接下來(lái)看看怎么在實(shí)際的開(kāi)發(fā)和測(cè)試中使用 Docker 這一利器。

使用 Docker 測(cè)試靜態(tài)網(wǎng)站

初始 Dockerfile

新建目錄 sample 和 nginx,將 nginx 配置放在 nginx 目錄下面。

├── sample
│   ├── Dockerfile
│   └── nginx
│       ├── global.conf
│       └── nginx.conf

Dockerfile

# Version: 0.01
FROM ubuntu
MAINTAINER HUANG "ituzhi@163.com"
ENV REFRESHED_AT 2015-10-12
RUN apt-get update
RUN apt-get -y -q install nginx
RUN mkdir -p /var/www/html
ADD nginx/global.conf /etc/nginx/conf.d/
ADD nginx/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

構(gòu)建 Sample 網(wǎng)站和 Nginx 鏡像

sudo docker build -t HUANG/nginx .

目錄下新建文件夾 website 存放網(wǎng)頁(yè)文件 index.html

.
├── Dockerfile
├── nginx
│   ├── global.conf
│   └── nginx.conf
└── website
    └── index.html

網(wǎng)頁(yè)文件

<head>

<title>Test website</title>

</head>

<body>

<h2>This is a test website</h2>

</body>

創(chuàng)建容器,在sample目錄下執(zhí)行命令

sudo docker run -d -p 80 --name web -v $PWD/website:/var/www/html/website HUANG/nginx nginx

-v 將宿主機(jī)的 $PWD/website 目錄作為卷掛載到了容器的 /var/www/html/website下。這樣可以直接在宿主機(jī)中對(duì)網(wǎng)站進(jìn)行修改。

#使用 Docker 構(gòu)建并測(cè)試 Web 程序

FROM ubuntu
MAINTAINER HUANG "ituzhi@163.com"

RUN adduser web --home /home/web --shell /bin/bash --disabled-password --gecos ""

RUN apt-get update --fix-missing
RUN apt-get -y install ruby ruby-dev build-essential redis-tools
RUN gem install --no-rdoc --no-ri sinatra json redis

RUN mkdir -p /var/www/webapp
RUN chmod -R 777 /var/www/webapp
RUN chown -R web:web /var/www/webapp

USER web

EXPOSE 4567

CMD [ "/var/www/webapp/bin/webapp" ]

啟動(dòng)一個(gè)新的容器 sudo docker run -p 4567 -d --name titusapp9 -v $PWD/webapp:/var/www/webapp HUANG/sinatra

查看容器映射到宿主機(jī)的端口

sudo docker port titusapp9 4567

0.0.0.0:49154

訪問(wèn)容器中的webapp

huangyi@HP ~/Practice/Docker/sinatra $ curl -i -H 'Accept: application/json' \
-d 'name=HUANG&status=bar' http://localhost:49154/json
HTTP/1.1 200 OK 
Content-Type: text/html;charset=utf-8
Content-Length: 36
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.3.1 (Ruby/1.9.3/2013-11-22)
Date: Wed, 21 Oct 2015 13:48:41 GMT
Connection: Keep-Alive

{"name":"HUANG","status":"bar"}

curl參數(shù)含義

Usage: curl [options...] <url>
 -i, --include       Include protocol headers in the output (H/F)
 -H, --header LINE   Custom header to pass to server (H)
 這兩個(gè)參數(shù)將指定的HTTP頭傳給webapp
 -d, --data DATA     HTTP POST data (H)

相當(dāng)于在瀏覽器中輸入,只不過(guò)curl調(diào)用的是post方法,而瀏覽器調(diào)用get方法。

http://localhost:49154/json?name=HUANG&status=bar

返回?cái)?shù)據(jù)由CGI構(gòu)造

require "rubygems"
require "sinatra"
require "json"

class App < Sinatra::Application

  set :bind, '0.0.0.0'
  get '/' do
    "<h2>DockerBook Test Sinatra app</h2>"
  end

  post '/json/?' do
    params.to_json
  end

end

即echo請(qǐng)求數(shù)據(jù)。

#構(gòu)建 Redis 鏡像和容器

Dockerfile

FROM ubuntu
MAINTAINER HUANG "ituzhi@163.com"

RUN apt-get update
RUN apt-get -y install redis-server redis-tools

EXPOSE 6379
ENTRYPOINT ["/usr/bin/redis-server"]
CMD []

ENTRYPOINT和CMD作用類似,相當(dāng)于容器的自啟動(dòng)程序。

構(gòu)建鏡像

sudo docker build -t HUANG/redis .

從鏡像構(gòu)建容器

sudo docker run -d -p 6379 --name redis HUANG/redis

查看Redis的端口映射到宿主機(jī)哪個(gè)端口

huangyi@HP ~/Practice/Docker/redis $ sudo docker port redis 6379
0.0.0.0:49155

在宿主機(jī)上運(yùn)行 Redis 客戶端連接到容器中的 Redis 服務(wù)器端。

redis-cli -h 127.0.0.1 -p 49155

#讓 Docker 容器互聯(lián)

首先啟動(dòng) Redis 容器,不指定端口

sudo docker run -d --name redis HUANG/redis

啟動(dòng) WebApp 容器,連接到 Redis 容器上。

sudo docker run -p 4567 --name WebappDB --link redis:db -t -i -v $PWD/webapp:/var/www/webapp HUANG/sinatra /bin/bash

redis:db 中的 redis 是要連接的容器, db 是連接后的別名。 WebappDB 容器可以訪問(wèn) redis 容器的所有端口。

在 WebappDB 容器中查看連接父子容器后在 /etc/hosts 中做的改變

web@2c3f5f9a136f:/$ cat /etc/hosts 
172.17.0.3  2c3f5f9a136f
...
172.17.0.2  db

第一項(xiàng)是 WebappDB 容器的 IP 地址和主機(jī)名。第二項(xiàng)是 redis 容器的 IP 地址和別名。

app.rb 中添加以下代碼存儲(chǔ)數(shù)據(jù)。

require "rubygems"
require "sinatra"
require "json"
require "redis"

class App < Sinatra::Application

      redis = Redis.new(:host => 'db', :port => '6379')

      set :bind, '0.0.0.0'

      get '/' do
        "<h2>DockerBook Test Redis-enabled Sinatra app</h2>"
      end

      get '/json' do
        params = redis.get "params"
        params.to_json
      end

      post '/json/?' do
        redis.set "params", [params].to_json
        params.to_json
      end
end

上述內(nèi)容就是如何在測(cè)試中使用Docker,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章題目:如何在測(cè)試中使用Docker
網(wǎng)站鏈接:http://m.rwnh.cn/article36/gdicsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站排名、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、網(wǎng)站收錄、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
双桥区| 崇仁县| 大渡口区| 沛县| 临泉县| 大兴区| 新营市| 斗六市| 抚顺县| 丰县| 临沂市| 肥东县| 九龙城区| 涡阳县| 滦平县| 叶城县| 宣恩县| 玉环县| 佳木斯市| 遂川县| 亳州市| 连州市| 苍溪县| 林芝县| 南漳县| 应用必备| 含山县| 马关县| 班玛县| 桑日县| 瑞金市| 上饶县| 鄢陵县| 环江| 屯昌县| 宜良县| 新绛县| 沾化县| 巢湖市| 阿拉善盟| 泌阳县|