软件测试基础篇——Docker

1、docker技术概述

  1. docker描述:docker是一项虚拟化的容器技术(类似于虚拟机),docker技术给使用者提供一个平台,在该平台上可以利用提供的容器,对每一个应用程序进行单独的封装隔离,每一个应用程序都有属于自己的运行和使用的空间,它们之间是互不影响,互不干扰的。

分析:docker技术工具------>相当于鲸鱼货轮------>货轮上有很多的集装箱------>相当于docker提供的容器------>在容器中封装项目/应用程序以及所需要的环境(环境+应用程序)。

docker基于操作系统层面的一项虚拟化容器技术

  1. docker和虚拟机的异同点:
    1. 相同点:它们都是基于操作系统层面的虚拟化技术
    2. 不同点:虚拟机的使用,需要借助于第三方虚拟机工具,比如VM;虚拟机软件(VM)有了之后,才能在该平台上进行操作系统环境的搭建,每个操作系统所消耗的硬件资源是较大的,比如centos安装,默认需要20G内存;操作系统有了之后,才能进行环境的搭建,比如LAMP环境;最后才能进行应用程序的部署操作;整个过程稍显繁琐和笨重。
    3. 相对于docker,我们只需要进行安装,就可以借助于该平台提供的容器,直接封装应用程序和它所需要的环境。
  2. docker目标:简化项目的部署流程
  3. docker版本:

​ decker ce:社区版,免费使用

​ docker ee:企业版,收费的

2、docker环境的部署

  1. 更改云服务器操作系统

​ 阿里云控制台:实现对自己云服务器进行配置操作

​ ①停止正在运行的操作系统

  1. 更改实例密码:指的是更改当前云服务器操作系统账号的密码,比如云服务器是centos,账号:root
  2. finalshell工具:连接云服务器(操作系统)

3、docker的部署应用

  1. 验证:查看操作系统版本(可选可写)

​ cat /etc/redhat-release

  1. 为了避免安装出错,建议进行更新操作(可选可写)

​ yum -y update

​ reboot

  1. 安装docker

​ yum -y install docker

  1. 验证:查看docker++版本++

​ docker ++version++

  1. 启动docker服务

​ systemctl start docker

  1. 添加docker开机自启动

​ systemctl enable docker

  1. docker搭建LAMP环境

​ ①docker搭建LAMP环境两种方案:

​ 第一种把apache,mysql,php单独做安装;

​ 第二种:找到封装LAMP环境的镜像文件,把他下载,并运行在容器中,我们直接使用即可

​ ②查找LAMP镜像文件

​ docker search -s 10 lamp #查找收藏量或下载量大于10的lamp镜像文件

​ ③下载lamp镜像

​ docker pull lamp镜像文件名

​ 例:docker pull docker.io/tutum/lamp

​ ④验证:查看下载的镜像文件

​ docker images

​ ⑤将下载好的lamp镜像文件,运行在docker容器

​ mkdir /mysql_data ------>自定义创建目录:映射容器中运行出来的lamp环境(把容器中部分环境数据放在该目录下)

​ docker run -d - -name=lamp(容器名字,自定义) -p 8080:80 -p 3306:3306 -v /mysql_data:/var/lib/mysql docker.io/tutum/lamp

​ ⑥运行完毕后,当前容器中已经把lamp镜像文件包含的lamp环境,全部加载在容器中(相当于容器中的lamp环境已搞定)

​ ⑦进入容器,进行安全设置

docker exec -it lamp(容器名字) /bin/bash

初始化mysql数据库密码:mysql_secure_installation

​ 注意:第一次提示,不做输入,直接回车

​ 接下来可以尝试进入apache服务器提供存放程序包的位置:

​ cd /var/www/html ------>前提:进入容器,因为lamp环境是在容器中加载的

​ ⑧到此为止,docker以及容器中lamp环境部署的操作,已经完毕

​ ⑨验证:因为lamp环境是能够搭建动态网站,提供WEB端应用程序部署和使用的平台,那我们可以尝试在docker容器的lamp环境下,部署一个WEB应用程序(网站)

​ 操作:把程序包放入容器中:win系统------>云服务器centos系统------>docker容器


​ 备注:因为传递程序包,所有就暂时退出容器:exit

​ 第一步:程序包:win------>centos

​ 可以借助于finalshell工具,直接把程序包拖拽/加载到centos(存放的位置自定义)

​ 第二步:程序包:centos----->docker容器

​ 前提:更改程序包的权限:把所有人改为可读可写可执行:chmod 777 www

通过docker提供的cp(复制)命令,将程序包复制到lamp容器的/var/www/html目录中

docker cp /www lamp:/var/www/html

​ 第三步:进入容器,查看复制的程序包

​ docker exec -it lamp /bin/bash

​ 到此为止,docker容器中既有程序包,也有该程序所需的lamp环境,接下来就可以进行访问操作


⑩开放云服务器的访问端口:8080和80端口号给开放出来

端口开放完毕后,就可以配合公网进行访问:

项目访问地址:http://公网IP:8080/www/install.php

相关推荐
IT成长日记2 小时前
【Docker基础】Docker数据持久化与卷(Volume)介绍
运维·docker·容器·数据持久化·volume·
热爱生活的猴子2 小时前
阿里云服务器正确配置 Docker 国内镜像的方法
服务器·阿里云·docker
物联网老王4 小时前
Ubuntu Linux Cursor 安装与使用一
linux·运维·ubuntu
艾伦_耶格宇5 小时前
【ACP】阿里云云计算高级运维工程师--ACP
运维·阿里云·云计算
FrankYoou6 小时前
Jenkins 与 GitLab CI/CD 的核心对比
java·docker
一位摩羯座DBA6 小时前
Redhat&Centos挂载镜像
linux·运维·centos
隆里卡那唔6 小时前
在dify中通过http请求neo4j时为什么需要将localhost变为host.docker.internal
http·docker·neo4j
疯子的模样6 小时前
Docker 安装 Neo4j 保姆级教程
docker·容器·neo4j
cui_win7 小时前
【网络】Linux 内核优化实战 - net.core.flow_limit_table_len
linux·运维·网络
风清再凯7 小时前
自动化工具ansible,以及playbook剧本
运维·自动化·ansible