測試開發之系統篇-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虛擬機器虛擬機
- 測試開發之效能篇-JMeter介面測試JMeter
- 測試開發之原始碼篇-Git常用命令整理原始碼Git
- 測試開發之效能篇-效能測試設計
- 測試開發之網路篇-IP地址
- 【推薦系統篇】--推薦系統之測試資料
- 測試開發之網路篇-網路路由路由
- 測試開發專題-開篇
- 測試開發之自動化篇-Appium指令碼開發APP指令碼
- Zsh 開發指南(第二篇 字串處理之常用操作)字串
- 測試開發之自動化篇-自動化測試框架設計框架
- 測試開發之介面篇-使用K6完成介面自動化測試
- 畫江湖之 docker 篇 【docker 常規操作記錄】Docker
- 畫江湖之 docker 篇 [docker 常規操作記錄]Docker
- IT專案管理之系統測試專案管理
- 系統測試-從研發到測試過程
- 自動化測試系統開發手記(一)
- Docker常用操作命令Docker
- Docker 常用操作指令Docker
- 效能測試之Docker監控Docker
- teprunner測試平臺部署到Linux系統DockerLinuxDocker
- 測試開發-Git常用命令總結Git
- 開發必備之單元測試
- 『高階篇』docker之開發課程服務(15)Docker
- 效能測試之入門篇
- 測試開發之前端篇-Web前端簡介前端Web
- docker操作mongo+docker的常用操作+mongo與.netDockerGo
- 常用程式碼 | 系統配置篇
- 開發測試
- Android開源專案第四篇:開發及測試工具篇Android
- 門戶系統測試---功能測試
- 『高階篇』docker之開發使用者服務(12)Docker
- 測試驅動開發(TDD)總結——原理篇