软件测试学习笔记丨Docker 安装、管理、搭建服务

news2024/9/25 15:29:17

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32192

容器(Docker)技术的价值

  • 保证环境一致性,只要使用相同镜像部署就可以保证一致性。
  • 轻量级虚拟化访问,运行更快,资源更小。同时也可以荣期间的隔离性。
  • 封装部署的负载型,云原生与微服务的首选技术方案。
  • 未来测试人员必学的技术栈。

一、安装与配置

  • Docker 支持多种操作系统平台,Windows, Linux, macOS
  • 注意:只推荐在 Linux 上使用。

1.1 Ubuntu 安装命令

# 切换管理员
  sudo su

# 卸载旧版本的docker(如果有的话)
  apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
  apt update
  apt install -y ca-certificates curl gnupg lsb-release

# 添加docker-ce官方GPG密钥,用于验证后续的下载的docker软件包
  mkdir -m 0755 -p /etc/apt/keyrings          #新版的Ubuntu可能已经有这个目录了
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  # 用中科大源下载会快一点
  curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 配置依赖下载源
  echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker
  apt update
  apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  docker --version

1.2 启动命令

  • 启动:systemctl start docker
  • 重启:systemctl restart docker
  • 开机自启动: systemctl enable docker
  • 运行状态:systemctl status docker

1.3 配置

# 创建 docker 用户组并添加用户, 以便无需使用 sudo 运行 Docker 命令
  usermod -aG docker <username>          # 需要注销登录,并重新登录

# Docker加速器
  tee /etc/docker/daemon.json <<-'EOF'
  {
      "registry-mirrors": ["https://ppwphquj.mirror.aliyuncs.com"]
  }
  EOF

  systemctl daemon-reload
  systemctl restart docker

# 查看
  docker info

二、容器管理

  • docker run -d --name={your_name} {image_name} (运行容器), -d表示后台运行
  • docker ps -s -a {查看当前所有容器}
  • docker stop {container_name} (停止容器), container_name可以是容器名称或者是容器ID
  • docker kill (container_name) {杀死容器}
  • docker rm -f {container_name} (删除容器)
  • docker logs -f {容器名称} (查看容器日志),-f持续输出日志,不加-f输出当前最新日志
  • docker inspect {容器名称} (查看容器的元数据)
  • docker exec -it {容器名称} bash 进入容器,exec 的意思是在容器中运行一个命令。 如果是 bash 并且指定了 -it 就会打开容器的 shell 交互

三、 镜像管理

  • docker pull {image_name} (拉取镜像)
  • docker push {image_name} (推送镜像)
  • docker images (查看当前机器的所有镜像)
  • docker rmi {image_name} (删除当前机器的一个镜像)
  • docker tag {source_images_name:tag your_image_name:tag} 为一个镜像打 tag
  • docker save busybox > busybox.tar
  • docker load < busybox.tar.gz

四、一行命令搭建常见服务

4.1 搭建Web服务器Nginx

  • 端口映射:docker run -d -p 5003:80 --name mynginx nginx (容器端口80,映射到宿主机的5003)

  • 文件挂载:docker run -d -p 5003:80 -v "$PWD/html":/usr/share/nginx/html --name mynginx nginx

  • -v: 文件挂载/文件映射

  • 在容器本地新建一个html文件夹,然后新建一个index.html文件,内容如下:

  • 在当前目录下执行docker命令,通过映射挂载到容器,这样打开ngnix读取的就是文件的内容

  • 打开nginx浏览器

4.2 搭建数据库服务MySQL

  • docker run -d -p 8881:3306 -v "$PWD/mysql":/var/lib/mysql -e MYSQL_ROOT_PASSWORD=test1. --name some-mysql mysql:5.5
    • -e: 配置环境变量

4.3 搭建持续集成平台Jenkins

  • docker run --name myjenkins -itd -p 5003:8080 -p 50000:50000 --restart always --privileged=true --user root --env JAVA_OPTS="-Xmx8192m" -v "$PWD/jenkins_data":/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /bin/docker:/bin/docker jenkins/jenkins:lts
    • -i-t 一起表示以交互式方式运行容器,即使后台运行也会保持伪终端打开
    • -d: 表示容器在后台运行
    • --restart always: 表示如果容器因为异常原因关闭,会自动重启
    • --privileged=true: 给docker开启特殊权限
    • --user root: 启动容器时使用root用户启动
    • --env: 环境变量
    • -v: 文件挂载 (把docker的sock和docker命令挂载到容器里,实现在容器里运行docker命令

4.4 搭建项目管理平台Jira

  • docker run --name jira -itd -v "$PWD/jira":/var/atlassian/application-data/jira -p 5003:8080 atlassian/jira-software
    • atlassian/jira-software: 镜像名称

4.5 搭建测试用例管理平台TestLink

  • 初始化数据库mariadb,指定环境变量
  • docker run -d --name mariadb -e ALLOW_EMPTY_PASSWORD=yes -e MARIADB_USER=bn_testlink -e MARIADB_DATABASE=bitnami_testlink -v /root/gz/images/mysql:/var/lib/mysql -p 8088:3306 bitnami/mariadb:latest

  • 启动testlink,关联对应的DB
  • docker run -d --name testlink -p 5003:8080 -p 444:443 -e ALLOW_EMPTY_PASSWORD=yes -e TESTLINK_DATABASE_USER=bn_testlink -e TESTLINK_DATABASE_NAME=bitnami_testlink --link mariadb bitnami/testlink:latest
    • --link mariadb: 把数据库容器mariadb和testlink容器进行链接,把mariadb以环境变量的形式注入到testlink容器中

在这里插入图片描述

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2138069.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通用与专用LabVIEW软件版本对比

在LabVIEW开发过程中&#xff0c;通常会根据项目需求设计出通用版本和专用版本两类软件。通用版本适合广泛的测试场合&#xff0c;具有较强的扩展性和适用性&#xff0c;而专用版本则针对特定设备或功能进行定制&#xff0c;提供更高的精确度和效率。两者各有优势&#xff0c;开…

《SpringBoot+Vue》Chapter01_SpringBoot介绍

SpringBoot的介绍 简单来说&#xff0c;SpringBoot就是Spring提供的用于Web开发的脚手架框架。配置简单、上手快速 SpringBoot的特性 自带tomcat、Jetty服务器可以部署war包自动配置Spring框架和第三方框架能够提供应用的健康监控和配置的监控没有代码生成&#xff0c;并且尽可…

新能源汽车充电基础设施大爆发

新能源汽车充电基础设施迈入新阶段&#xff1a;全国总量破千万&#xff0c;未来五年将翻番增长 截至2024年7月底&#xff0c;全国充电设施总量已达到1060万台&#xff0c;为超过2500万辆新能源汽车提供了充电服务。目前&#xff0c;95%的高速公路服务区已具备充电功能&#xf…

OPENAIGC开发者大赛企业组钻石奖 | FilmAction — AI电影创作平台

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给您…

算法练习题27——疫情下的电影院(模拟)

其实思路还好 就是输入有点难搞 Java import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);String input scanner.nextLine();// 去掉输入字符串的方括号if (input.…

从大脑图谱/ROI中提取BOLD信号

动机 在功能连接&#xff08;Functional Connectivity&#xff0c;FC&#xff09;构建过程中&#xff0c;由于FC中元素数目是节点数目的平方关系&#xff0c;所以在计算FC之前进行数据降维是一个常见的选择。 一般会将体素级/顶点级BOLD信号&#xff08;在2mm的图像分辨率下大脑…

Python实现一个轮盘抽奖功能(完整代码)

运行后代码图片 python的gui模块 python常用的图形库tkinter、wxpython、pyqt。 tkinter是python自带的图形库&#xff0c;Tkinter 可以在大多数的 Unix 平台下使用&#xff0c;同样可以应用在 Windows 和 Macintosh 系统里。 wxPython 是一款开源软件&#xff0c;是 Python…

C++进阶:多态

✨✨所属专栏&#xff1a;C✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 多态的概念 多态(polymorphism)的概念&#xff1a;通俗来说&#xff0c;就是多种形态。多态分为编译时多态(静态多态)和运⾏时多态(动态多态)&#xff0c;这⾥我们重点讲运⾏时多态。 编译时多态(静态多态)主…

一口气学完docker【入门到精通】

一、容器 1、什么是容器 容器是一种轻量级的虚拟化技术&#xff0c;它为应用程序提供了一种隔离的运行环境。在操作系统级别上实现&#xff0c;容器将应用程序及其所有依赖项&#xff08;包括库、配置文件等&#xff09;封装在一起&#xff0c;形成一个独立的标准单元。 每个…

[数据结构]二叉搜索树

今天我们来学习一下新的数据结构&#xff0c;二叉搜索树&#xff0c;这个结构比较简单&#xff0c;是一个铺垫式的结构&#xff0c;为之后的平衡二叉树&#xff0c;AVL树以及红黑树做一个知识基础&#xff0c;我们将从概念到实现具体的介绍二叉搜索树。 目录 Ⅰ.二叉搜索树的…

比亚迪电动汽车的市场占比太惊人

比亚迪&#xff08;BYD&#xff09;在中国电动汽车市场的崛起无疑是近年来最显著的现象之一。凭借其强大的技术整合、丰富的产品线以及价格优势&#xff0c;比亚迪已经迅速成为中国乃至全球电动汽车领域的领导者。在2024年&#xff0c;比亚迪的市场份额在中国汽车市场达到了惊人…

什么是上拉,下拉?

上拉就是将引脚通过一个电阻连接到电源&#xff0c;作用&#xff1a;1.使IO口的不确定电平稳定在高点平&#xff0c;2、为了增加IO口拉电流的能力。 下拉就是将引脚通过一个电阻与GND相连&#xff0c;作用&#xff1a;1.从器件输出电流 2.当IO口为输入状态时&#xff0c;引脚的…

Redhat 8,9系(复刻系列) 一键部署Oracle23ai rpm

Oracle23ai前言 Oracle Database 23ai Free 让您可以充分体验 Oracle Database 的能力,世界各地的企业都依赖它来处理关键任务工作负载。 Oracle Database Free 的资源限制为 2 个 CPU(前台进程)、2 GB 的 RAM 和 12 GB 的磁盘用户数据。该软件包不仅易于使用,还可轻松下载…

适合学生党开学买的蓝牙耳机?分享开放式耳机排行榜前十名

学生党开学想买耳机的话&#xff0c;我觉得比较适合入手开放式耳机&#xff0c;因为这类耳机佩戴舒适度高&#xff0c;长时间使用也不会感到不适或疲劳&#xff0c;同时保持耳道干爽透气&#xff0c;更加健康卫生&#xff0c;还能提供自然、开阔的音场&#xff0c;音质表现优秀…

详解c++多态---上

virtual关键字 1.可以修饰原函数&#xff0c;为了完成虚函数的重写&#xff0c;满足多态的条件之一。 class Person { public:virtual void BuyTicket() { cout << "买票-全价" << endl; } };class Student : public Person { public:virtual void Buy…

NarratoAI利用AI大模型,一键解说并剪辑视频

测试视频: 字幕/配乐后期添加的,视频由NarratoAI自动生成的 雪迷宫-NarratoAI利用AI大模型剪辑解说视频测试 WIN整合包 下载链接&#xff1a;https://pan.quark.cn/s/8f54ef99e3fb 使用前先更新&#xff0c;运行update.bat Gemini API Key 访问 https://aistudio.google.c…

性能测试-jmeter的控制器(十六)

一、if控制器 需求&#xff1a;使用“用户自定义变量”定义name变量&#xff0c;值可以是“baidu”或“itcast”,使用变量值&#xff0c;控制是否访问对应网站。 1、步骤&#xff1a; 在测试计划中添加用户定义的变量name,取值可为baidu或itcast添加两个http请求&#xff1a…

Docker突然宣布:涨价80%

从11月15日起&#xff0c;Docker的付费订阅中Pro和Team的价格都将大幅上调&#xff1a;Pro从原来的5美元每月激增到9美元每月&#xff0c;直接涨了80%&#xff1b;而Team也从之前的9美元每月来到15美元每月&#xff0c;涨价66.7%。只有Business保持此前的24美元每月不变。 同时…

S32K3 工具篇6:如何将RTD EB工程导入到S32DS

S32K3 工具篇6&#xff1a;如何将RTD EB工程导入到S32DS 1. MCAL_Plugins->Link Source Resource Filters2. Includes3. Preprocessor4. Linker5. optimization6. main.c 这个主题实际上&#xff0c;之前已经有多人写过&#xff0c;并且写的很好&#xff0c;只是实际操作中&…