当前位置: 首页 > news >正文

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

本文转自测试人社区,原文链接: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 updateapt 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# 安装Dockerapt updateapt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugindocker --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"]}EOFsystemctl daemon-reloadsystemctl 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 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ASP.net core 8.0网站发布
  • Linux软件包循环依赖解决 彻底删除i386架构 更新软件源
  • uniapp uni-table合并单元格
  • unity3d入门教程四
  • Nginx怎么重新编译添加模块
  • 深入理解 Milvus:新一代向量数据库的基础技术与实战指南
  • 北斗卫星系统信号介绍
  • NVM (Node Version Manager) 使用教程
  • AB 1756-L62 与 AB 5069 通过串口通信
  • 从C语言过渡到C++
  • Kubernetes精讲之网络通信与调度
  • jmeter元件+取样器(十)
  • 心觉:收钱就像喝水一样简单,是如何做到的?
  • 【MySQL】Ubuntu22.04中MySQL-V8安装和修改root密码
  • 基于sklearn的机器学习 — KNN
  • .pyc 想到的一些问题
  • “大数据应用场景”之隔壁老王(连载四)
  • CentOS6 编译安装 redis-3.2.3
  • Cumulo 的 ClojureScript 模块已经成型
  • Docker入门(二) - Dockerfile
  • E-HPC支持多队列管理和自动伸缩
  • gitlab-ci配置详解(一)
  • input的行数自动增减
  • Java多线程(4):使用线程池执行定时任务
  • PAT A1050
  • python_bomb----数据类型总结
  • Python学习之路16-使用API
  • React 快速上手 - 07 前端路由 react-router
  • Redis 懒删除(lazy free)简史
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 从0实现一个tiny react(三)生命周期
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 关于字符编码你应该知道的事情
  • 计算机在识别图像时“看到”了什么?
  • 聊一聊前端的监控
  • 区块链分支循环
  • 再谈express与koa的对比
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 自定义函数
  • FaaS 的简单实践
  • 如何正确理解,内页权重高于首页?
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​补​充​经​纬​恒​润​一​面​
  • ​第20课 在Android Native开发中加入新的C++类
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #if 1...#endif
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (2020)Java后端开发----(面试题和笔试题)
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (poj1.3.2)1791(构造法模拟)
  • (Python第六天)文件处理