写点什么

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

作者:测试人
  • 2024-09-11
    北京
  • 本文字数:2345 字

    阅读完需:约 8 分钟

本文转自测试人社区,原文链接: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-softwareatlassian/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 容器中

软件测试开发免费视频教程分享


发布于: 刚刚阅读数: 5
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨Docker 安装、管理、搭建服务_软件测试_测试人_InfoQ写作社区