成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于docker搭建測試環境

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

layout: post

title: 基于docker搭建測試環境

category: 技術

tags: Docker

keywords: Docker shipyard jenkins

簡介

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

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

總體思路

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

業務流程

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

FROM tomcat

ADD *.war $TOMCAT_HOME/webapps

# 啟動tomcat并監聽tomcat日志

CMD bash start.sh

2、創建一個新的hudson job,并build。

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

基于docker測試環境的安裝

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

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

示例環境描述:在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集群(也可以使用現成的zookeeper集群,其它配置工具etcd等也可)

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

  • 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注冊該節點的信息,進入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監聽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持久化數據庫中的數據

  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執行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端口

清掉過時的鏡像和容器

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

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

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

優勢

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

不足

 

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

2013-08-27 14:45:30

CouchbaseCouchbase環境測試

2011-04-02 11:40:17

LAMP測試環境

2010-06-07 17:33:14

Linux測試環境搭建

2018-10-18 08:00:00

Redis Enter數據庫Docker

2023-02-14 08:29:08

MySQLDocker

2011-03-15 15:51:12

netfilteriptables

2016-11-03 09:49:04

2010-05-28 09:58:00

Linux測試環境搭建

2019-07-23 07:30:16

2015-01-04 09:49:37

PHPDocker開發環境

2016-09-08 16:04:59

JavaDocker前端

2017-07-11 13:30:12

RedisDockerLinux

2017-02-06 11:55:40

DockerJava Web環境

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移動開發

2012-03-07 11:30:09

PhoneGapWindows Pho
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频二区 | 国产精品亚洲一区二区三区在线 | www..99re | 综合色播 | 成人精品 | 日本欧美视频 | 午夜手机在线视频 | 午夜免费在线 | 春色av| 美女久久视频 | 亚洲精品一区二区另类图片 | 精品国产鲁一鲁一区二区张丽 | 色网站视频 | 亚洲欧美中文日韩在线v日本 | 欧美日韩视频 | 正在播放国产精品 | 日韩淫片免费看 | 婷婷久久综合 | 亚洲欧美日韩中文在线 | 在线欧美一区 | 精品视频在线观看 | 亚洲高清网 | 国产精品一区二区三级 | 欧美日韩在线免费观看 | 国产伦精品一区二区三区视频金莲 | 国产日韩精品久久 | 伊人在线视频 | 久久久久久久一区 | 91精品久久久久久久久 | 中国大陆高清aⅴ毛片 | 欧美日韩成人网 | aⅴ色国产 欧美 | 久久精品国产99国产精品 | 91国在线视频 | 91精品在线看 | 草草视频在线免费观看 | 久久久做| 久久久久久网 | 午夜精品一区二区三区在线视频 | 国产精品污污视频 | 美女久久 |