测试开发之系统篇-Docker常用操作

当前位置: 钓虾网 > 圈子 > 测试开发之系统篇-Docker常用操作

测试开发之系统篇-Docker常用操作

2024-11-07 作者:钓虾网 1

Docker容器运行的基础是镜像。你可以在Docker Hub上进行镜像检索,或者通过Dockerfile文件自主构建。

测试开发之系统篇-Docker常用操作

我们从Docker Hub拉取MySQL官方镜像的最新版。命令如下:

`docker pull mysql`

要查看本地存储的镜像,可以使用`docker images`命令,它将列出所有的镜像,包括你刚才拉取的MySQL镜像。

启动容器时,我们使用`docker run`命令。例如,下面的命令将在后台运行一个新的MySQL容器,并为其设置名称和MySQL的root密码:

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

要查看所有正在运行的容器,包括已经停止的容器,可以使用`docker ps -a`命令。

如果你需要进入已经运行的容器内部,可以使用`docker exec`命令。例如,下面的命令可以进入名为db-server的容器内部系统的Shell:

`docker exec -it db-server /bin/bash`

在容器内部完成操作或修改后,你可以使用`docker 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`

若要删除已停止的容器或未使用的镜像,可以使用以下命令:

`docker rm -f db-server` (删除容器)和 `docker rmi registry.cn-shanghai.aliyuncs.com/aaron-share/db-server` (删除镜像)。请注意,-f选项用于强制删除正在运行的容器。

接下来,让我们通过Dockerfile来构建自己的镜像。下面是一个简单的示例,以官方的Ubuntu系统镜像为基础:

```Dockerfile

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 -t registry.cn-shanghai.aliyuncs.com/aaron-share/ubuntu-server:latest .`

在软件测试中,我们经常使用Docker镜像来创建不同的测试环境。你可以使用上述的`docker exec`命令进入容器执行测试命令,也可以直接在当前宿主机上使用`docker run`来执行测试。Docker为我们提供了便捷、高效、可重复的软件测试环境。在当今的软件开发环境中,我们经常使用 Docker 来封装和运行各种应用,特别是 Java 应用程序。这通常涉及使用 Maven 构建工具来确保代码的质量和准确性。下面这条命令展示了如何使用 Docker 来运行 Maven 测试。

使用 `docker run -i --rm` 命令,我们在 Docker 容器中启动了一个交互式会话,并在完成后自动删除容器。通过 `--name testng-in-docker`,我们给容器命名为“testng-in-docker”,以便于识别和管理。

`-v "$(pwd)":/usr/src/mymaven` 表示将宿主机的当前项目路径映射到容器内的 `/usr/src/mymaven` 目录。这意味着容器内部可以直接访问你的项目代码。

`-v ~/.m2:/root/.m2` 将 Maven 类库的根目录(通常包含各种依赖项和缓存)映射到容器内的相同位置,确保容器内的 Maven 实例可以访问这些资源。

`-w /usr/src/mymaven` 指定容器的工作目录为 `/usr/src/mymaven`,这是执行 Maven 命令的地方。

接下来,`maven:latest` 拉取了最新的 Maven 容器镜像。在这个容器内,我们执行 `mvn clean test` 命令来运行 Maven 项目的测试。这意味着一旦容器启动,它就会立即开始执行测试。

测试结果会保存在容器中。由于我们使用了 `-i` 标志,可以在容器中以交互式方式查看这些结果。当命令完成后,容器会自动退出,测试结果仍然保留在当前路径下,方便开发者查看和分析。

除了单个容器的操作,Docker Compose 是一个强大的工具,用于管理和编排多个相互依赖的容器。如果你的服务包含多个容器,并且这些容器需要协同工作,那么 Docker Compose 将是一个理想的选择。它可以轻松启动、停止和重启所有服务,确保每个容器按照预期运行。

Docker 和 Docker Compose 提供了强大的工具集,用于在现代化的软件开发环境中构建、运行和管理应用程序。通过合理地使用这些工具,开发者可以更加高效地构建、测试和部署他们的应用。

文章来自《钓虾网小编|www.jnqjk.cn》整理于网络,文章内容不代表本站立场,转载请注明出处。

本文链接:https://www.jnqjk.cn/quanzi/164109.html

AI推荐

Copyright 2024 © 钓虾网 XML

蜀ICP备2022021333号-1