亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

測試開發之系統篇-Docker常用操作

標簽:
容器

Docker容器(Container)的运行基于镜像(image),您可以在Docker Hub上检索,或通过Dockerfile文件自己构建镜像。

首先拉取MySQL官方镜像的最新版(latest)。

https://img1.sycdn.imooc.com/611dbe6b000166ff14960186.jpg

docker pull mysql

使用docker images显示本地的镜像

https://img4.sycdn.imooc.com/611dbe6b0001fa8a14960186.jpg

docker images

使用docker run命令来运行容器,-d设置在后台运行,并返回容器ID。

https://img1.sycdn.imooc.com/611dbe6b0001cb8e14960186.jpg

docker run -itd --name db-server -e MYSQL_ROOT_PASSWORD=P2ssw0rd mysql

使用docker ps查看正在运行的镜像,-a参数显示所有实例。

https://img2.sycdn.imooc.com/611dbe6b0001dd0b14960186.jpg

docker ps -a

使用docker exec命令,可进入容器内部系统的Shell。

https://img3.sycdn.imooc.com/611dbe6c0001a09914960186.jpg

docker exec -it db-server /bin/bash

在容器内完成相应操作/修改后,commit命令可提交更新到指定的镜像。

https://img1.sycdn.imooc.com/611dbe6c0001acce14960222.jpg

docker commit -m "update" -a "aaron" db-server registry.cn-shanghai.aliyuncs.com/aaron-share/db-server

更新本地镜像到镜像管理服务器,此处先完成了到阿里云镜像服务器的登录。

https://img3.sycdn.imooc.com/611dbe6c000184d114960222.jpg

docker login --username=18626200000 registry.cn-shanghai.aliyuncs.com docker push registry.cn-shanghai.aliyuncs.com/aaron-share/db-server:latest

以下命令分别删除容器和镜像,-f可强制删除运行中的容器。

https://img3.sycdn.imooc.com/611dbe6d00017e6414960222.jpg

docker rm -f db-server docker rmi registry.cn-shanghai.aliyuncs.com/aaron-share/db-server

下面,我们简单介绍下,如何使用Dockerfile来构建镜像。以下Dockerfile以官方ubuntu系统镜像为起点,完成了一个简单的示例。

https://img3.sycdn.imooc.com/611dbe6d000155b114960408.jpg

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", "http://baidu.com" ] # 运行容器时执行的命令

然后,就可以使用docker build命令来构建镜像。

https://img1.sycdn.imooc.com/611dbe6d0001b85d14960186.jpg

docker build -t registry.cn-shanghai.aliyuncs.com/aaron-share/ubuntu-server:latest .


软件测试中,我们通常使用预制好的、不同环境的Docker镜像,来进行相应的测试。
可以使用上述的docker exec命令进入容器,执行测试命令;也可以直接在宿主机上执行docker run来执行测试。

https://img2.sycdn.imooc.com/611dbe7100013e5214960594.jpg

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是一个用于定义和运行多容器的工具,如果您的服务包括了多个相互依赖的容器,可以使用他来编排、启动所有服务。



點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
軟件測試工程師
手記
粉絲
18
獲贊與收藏
46

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消