成人免费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測試環境搭建

2023-02-14 08:29:08

MySQLDocker

2018-10-18 08:00:00

Redis Enter數據庫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測試環境搭建

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技術棧公眾號

主站蜘蛛池模板: 国产视频亚洲视频 | 黄片毛片免费观看 | 天堂在线中文 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 中文字幕成人 | 污片在线观看 | 国产亚洲精品美女久久久久久久久久 | 亚洲精品日韩视频 | 精品国产一区二区 | 青青久久 | 日韩精品久久久久久 | 精品一区二区久久久久久久网站 | 91精品国产91久久久久游泳池 | 欧美日韩一 | 福利网站在线观看 | h视频免费在线观看 | 欧美视频在线播放 | 91在线看 | 国产美女福利在线观看 | 精品国产1区2区3区 一区二区手机在线 | 99久9| 电影午夜精品一区二区三区 | 成人精品高清 | 欧美一区二区激情三区 | 欧美日韩在线精品 | 欧美一区二区三区四区视频 | 日本二区在线观看 | 日本一区二区三区四区 | 久久免费福利 | 欧美伊人久久久久久久久影院 | 日本超碰| 日本午夜在线视频 | 五月婷六月丁香 | 免费黄色a视频 | 亚洲高清久久 | 亚洲国产成人精 | 久草在线影 | 成人性视频免费网站 | 久草免费电影 | 三级视频在线观看电影 | 国产99在线 | 欧美 |