偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

基于docker搭建測試環(huán)境

云計算
當web項目開發(fā)完畢后,一般會在測試環(huán)境上運行一下,供開發(fā)部門調錯和測試部門測試。對于具有一定業(yè)務規(guī)模的公司,幾十個上百個web服務,每個服務分別占用一個tomcat目錄,配置過程繁瑣,且無法集中管理。本文主要講述基于docker搭建測試環(huán)境,或許可以解決部分上述問題。

layout: post

title: 基于docker搭建測試環(huán)境

category: 技術

tags: Docker

keywords: Docker shipyard jenkins

簡介

當web項目開發(fā)完畢后,一般會在測試環(huán)境上運行一下,供開發(fā)部門調錯和測試部門測試。對于具有一定業(yè)務規(guī)模的公司,幾十個上百個web服務,每個服務分別占用一個tomcat目錄,配置過程繁瑣,且無法集中管理。此外,對于公司的新手來講,需要一定的背景知識才可以上手。

本文主要講述基于docker搭建測試環(huán)境,或許可以解決部分上述問題。

總體思路

  1. 業(yè)務代碼(包括Dockerfile文件)通過git提交,使用Jenkins或hudson觸發(fā)maven編譯項目代碼、并制作成docker鏡像,push到docker鏡像服務器。
  2. 登錄shipyard,deploy docker容器

業(yè)務流程

1、在web項目目錄中添加一個Dockerfile文件

FROM tomcat

ADD *.war $TOMCAT_HOME/webapps

# 啟動tomcat并監(jiān)聽tomcat日志

CMD bash start.sh

2、創(chuàng)建一個新的hudson job,并build。

3、進入http://shipyard:8080/,通過web ui決定在哪臺主機上運行項目實例,并配置映射端口。

基于docker測試環(huán)境的安裝

jenkin與docker的整合參見:[使用Jenkins來構建Docker容器](http://www.cnblogs.com/Leo_wl/p/4314792.html ""),在此就不班門弄斧了。

該測試環(huán)境使用shipyard管理docker鏡像和容器(運行web實例)。shipyard, Built on Docker Swarm, Shipyard gives you the ability to manage Docker resources including containers, images, private registries and more.

示例環(huán)境描述:在192.168.56.154,192.168.56.155上搭建docker swarm集群,并在192.168.56.154上運行shipyard controller。

安裝docker registry

docker run -d -p 5000:5000 -v /root/registry:/tmp/registry registry

安裝docker swarm

1、為192.168.56.154,192.168.56.155安裝docker,并配置其DOCKER_OPTS="--insecure-registry 私服ip:5000 -H 0.0.0.0:2375 -H unix:///var/run/docker.sock"

2、為192.168.56.154,192.168.56.155搭建zookeeper集群(也可以使用現(xiàn)成的zookeeper集群,其它配置工具etcd等也可)

3、為192.168.56.154,192.168.56.155搭建docker swarm(zookeeper只是其中一種服務發(fā)現(xiàn)的方式)

  • root@192.168.56.155 # docker run -ti -d --restart=always --name shipyard-swarm-agent swarm join zk://192.168.56.154,192.168.56.155/swarm --addr=192.168.56.155:2375

這容器工作就是:不停的向zookeeper注冊該節(jié)點的信息,進入zookeeper命令行可以看到

  1. [zk: 192.168.56.154:2181(CONNECTED) 5] ls /swarm/docker/swarm/nodes 
  2.  
  3. [192.168.56.155:2375
  4.  
  5. root@192.168.56.154 # docker run -ti -d --restart=always --name shipyard-swarm-agent swarm join zk://192.168.56.154,192.168.56.155/swarm --addr=192.168.56.154:2375 
  6. root@192.168.56.154 # docker run -ti -d --restart=always --name shipyard-swarm-manager -p 2376:2376 swarm manage zk://192.168.56.154,192.168.56.155/swarm --host tcp://0.0.0.0:2376 

--host tcp://0.0.0.0:2376是設置容器中swarm的http server監(jiān)聽2376端口,-p 2376:2376是將容器的2376端口映射出來,注意2376端口是隨意弄的,但該端口不能命名為2375。至此,docker swarm將以192.168.56.154:2376對外提供web服務

shipyard 手動安裝步驟

shipyard***的是3.0.0版,基于docker swarm,其所有組件以docker容器方式運行,有兩種部署方式

  1. 自動部署,命令:curl -sSL https://shipyard-project.com/deploy | bash -s
  2. 手動部署,手動依次啟動必須的容器組件。

安裝過程

1、通過/root/shipyard/data持久化數(shù)據(jù)庫中的數(shù)據(jù)

  1. root@192.168.56.154 # docker run -ti -d --restart=always --name shipyard-rethinkdb -v /root/shipyard/data:/data rethinkdb 

2、安裝shipyard-controller

  1. root@192.168.56.154 # docker run -ti -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 shipyard/shipyard:latest server -d tcp://swarm:2376 

需要注意的問題

docker容器一定可以訪問宿主機么

理論上是可以訪問的,但如果你的宿主機打開了防火墻,對于192.168.56.154執(zhí)行docker run -ti -d --restart=always --name shipyard-swarm-agent swarm join zk://192.168.56.154,192.168.56.155/swarm --addr=192.168.56.154:2375時,可能會失敗,因為swarm容器無法訪問192.168.56.154的2376端口

清掉過時的鏡像和容器

對于測試環(huán)境,業(yè)務代碼經常更新,因此會產生非常多的docker鏡像和容器,需要在合適的實際將其干掉。這涉及到

  1. 鏡像的命名策略
  2. 干掉old鏡像以及對應container的時機

我采用以下策略:鏡像名與jenkins的JOB_NAME相同,在使用jenkins build鏡像時,便通過swarm/docker remote RESTFUL API干掉原有的鏡像和容器。

優(yōu)勢

  1. docker鏡像集中管理(通過web ui進行管理)
  2. docker容器(類似于一個項目實例)集中管理,并可以監(jiān)控所有實例的運行狀態(tài),還可以創(chuàng)建、刪除“運行實例”
  3. 減少操作步驟,只需要極少的背景知識(為調試項目,需要懂一點docker命令)。

不足

 

  1. 運行的web項目只可以調用其它服務(包括redis、rabbitmq等),不能對外提供服務(不是不可以做,而是復雜的端口映射不好管理(可以使用nginx可以解決))。
責任編輯:xinxiaoliang 來源: DockOne
相關推薦

2013-08-27 14:45:30

CouchbaseCouchbase環(huán)境測試

2011-04-02 11:40:17

LAMP測試環(huán)境

2010-06-07 17:33:14

Linux測試環(huán)境搭建

2023-02-14 08:29:08

MySQLDocker

2018-10-18 08:00:00

Redis Enter數(shù)據(jù)庫Docker

2011-03-15 15:51:12

netfilteriptables

2019-07-23 07:30:16

2016-11-03 09:49:04

2010-05-28 09:58:00

Linux測試環(huán)境搭建

2015-01-04 09:49:37

PHPDocker開發(fā)環(huán)境

2016-09-08 16:04:59

JavaDocker前端

2017-07-11 13:30:12

RedisDockerLinux

2017-02-06 11:55:40

DockerJava Web環(huán)境

2016-09-14 21:55:33

前端測試Karma

2014-12-08 11:17:51

SDNDocker部署Docker

2022-06-24 10:11:15

DockerLinux

2014-01-21 11:16:59

MPI并行計算

2022-01-14 15:42:20

Docker托管代碼

2010-09-07 17:27:54

Carbide.c++Symbian移動開發(fā)

2012-03-07 11:30:09

PhoneGapWindows Pho
點贊
收藏

51CTO技術棧公眾號