測試開發之系統篇-Docker常用操作
Docker容器(Container)的執行基於映象(image),您可以在 上檢索,或透過Dockerfile檔案自己構建映象。
首先拉取 的最新版(latest)。
docker pull mysql
使用docker images顯示本地的 映象
docker images
使用docker run命令來執行容器,-d設定在後臺執行,並返回容器ID。
docker run -itd --name db-server -e MYSQL_ROOT_PASSWORD=P2ssw0rd mysql
使用docker ps檢視正在執行的映象,-a引數顯示所有例項。
docker ps -a
使用docker exec命令,可進入容器內部系統的Shell。
docker exec -it db-server /bin/bash
在容器內完成相應操作/修改後,commit命令可提交更新到指定的映象。
docker commit -m "update" -a "aaron" db-server registry.cn-shanghai.aliyuncs.com/aaron-share/db-server
更新本地映象到映象管理伺服器,此處先完成了到阿里雲映象伺服器的登入。
docker login --username=18626200000 registry.cn-shanghai.aliyuncs.com docker push registry.cn-shanghai.aliyuncs.com/aaron-share/db-server:latest
以下命令分別刪除容器和映象,-f可強制刪除執行中的容器。
docker rm -f db-server docker rmi registry.cn-shanghai.aliyuncs.com/aaron-share/db-server
下面,我們簡單介紹下,如何使用Dockerfile來構建映象。以下Dockerfile以官方ubuntu系統映象為起點,完成了一個簡單的示例。
FROM ubuntu:latest # 基準映象 MAINTAINER aaron # 作者資訊 ARG APT=apt-get # 臨時變數,構建容器時有效 RUN $APT update \ # 構建容器時執行的命令 && $APT install -y curl \ && rm -rf /var/lib/apt/lists/* CMD [ "curl", "-s", "] # 執行容器時執行的命令
然後,就可以使用docker build命令來構建映象。
docker build -t registry.cn-shanghai.aliyuncs.com/aaron-share/ubuntu-server:latest .
軟體測試中,我們通常使用預製好的、不同環境的Docker映象,來進行相應的測試。
可以使用上述的docker exec命令進入容器,執行測試命令;也可以直接在宿主機上執行docker run來執行測試。
docker run -i --rm \ --name testng-in-docker -v "$(pwd)":/usr/src/mymaven -v ~/.m2:/root/.m2 -w /usr/src/mymaven maven:latest mvn clean test
以上使用了Java常見的Maven構建工具來執行測試,-v表示從宿主機到容器的路徑對映,它
- 透過$(pwd)命令獲取當前專案路徑,並對映到了容器內部的/usr/src/mymaven目錄;
- 將Maven類庫的根目錄~/.m2,對映到了容器內部的/usr/src/mymaven目錄;
- 拉取、執行名為maven的容器映象的latest版本;
- 容器啟動時,立即執行mvn clean test命令執行測試;
- 執行結束後容器直接退出,測試結果位於當前路徑下。
另外,Docker Compose是一個用於定義和執行多容器的工具,如果您的服務包括了多個相互依賴的容器,可以使用他來編排、啟動所有服務。詳情可以參考
。
本人在開源專案中,實現了基於Docker容器的按需測試環境管理,詳情請參照網址
。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978795/viewspace-2787694/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 測試開發之系統篇-常用系統命令
- 測試開發之系統篇-Docker容器安裝Docker
- 測試開發之系統篇-按需建立測試虛擬機器虛擬機
- 測試開發之網路篇-常用命令
- 測試開發之網路篇-常用服務協議協議
- 測試開發之系統篇-安裝KVM虛擬機器虛擬機
- 測試開發之原始碼篇-Git常用命令整理原始碼Git
- 測試開發之效能篇-JMeter介面測試JMeter
- 測試開發之效能篇-效能測試設計
- 【推薦系統篇】--推薦系統之測試資料
- 測試開發之網路篇-IP地址
- Zsh 開發指南(第二篇 字串處理之常用操作)字串
- 測試開發之自動化篇-Appium指令碼開發APP指令碼
- 測試開發之網路篇-網路路由路由
- 測試開發專題-開篇
- 測試開發之自動化篇-自動化測試框架設計框架
- 畫江湖之 docker 篇 【docker 常規操作記錄】Docker
- 畫江湖之 docker 篇 [docker 常規操作記錄]Docker
- 測試開發之介面篇-使用K6完成介面自動化測試
- Docker常用操作命令Docker
- Docker 常用操作指令Docker
- teprunner測試平臺部署到Linux系統DockerLinuxDocker
- 自動化測試系統開發手記(一)
- 效能測試之Docker監控Docker
- docker操作mongo+docker的常用操作+mongo與.netDockerGo
- 系統測試-從研發到測試過程
- 常用程式碼 | 系統配置篇
- 『高階篇』docker之開發課程服務(15)Docker
- 測試開發之自動化篇-使用Selenium IDE錄製指令碼IDE指令碼
- 效能測試之入門篇
- 開發必備之單元測試
- 使用docker快速搭建Permeate滲透測試系統實踐Docker
- 『高階篇』docker之開發使用者服務(12)Docker
- .netcore持續整合測試篇之測試方法改造NetCore
- 測試開發之前端篇-Web前端簡介前端Web
- 軟體測試常用檔案之XMLXML
- DAPP 系統開發操作及功能丨智慧合約專案系統開發方案APP
- Docker筆記五之Docker系統變數Docker筆記變數