
常用测试容器安装指南:搭建你的测试环境工厂
大约 5 分钟
常用测试容器安装指南:搭建你的测试环境工厂
作为测试工程师,我们经常需要快速搭建各种测试环境。Docker容器就像是预制的房子,拿来就能住!今天我们来学习如何安装和配置常用的测试容器,让你的测试环境搭建变得像点外卖一样简单。
Docker Run 核心参数详解
在开始安装各种容器前,先了解几个关键参数:
# 核心参数说明
-v # 目录映射:把宿主机目录映射到容器内部
# 就像给容器开了一扇窗,可以直接访问外面的文件
-p # 端口映射:把宿主机端口映射到容器端口
# 就像给房子安装门牌号,外面的人才能找到你
-d # 后台运行:让容器在后台默默工作
# 就像雇了个不用管的保姆
--name # 给容器起个好记的名字
# 总比记一串随机字符强吧?容器自动启动配置
让容器开机自启,就像设置闹钟一样:
# 设置容器自动启动
docker container update --restart=always 容器名称或ID
# 💡 测试工程师小贴士:
# 测试环境容器建议都设置自动启动,避免服务器重启后手动启动的麻烦ubantu
# 创建接下来运行django项目的容器
docker pull ubuntu:18.04
# 因为我们的api项目已经上传到了真实服务器中,所以我们执行映射api项目的文件到容器中/home/luffycity目录下
docker run -itd -p 8000:8000 -v /home/luffy/luffyapi:/home/luffyapi --name=luffyapi ubuntu
# 进入容器
docker container exec -it luffyapi bash
# 更新镜像源[如果有时间,可以修改这个容器的镜像源]
apt-get update
# 安装基本软件和命令
apt-get install vim
# 检车当前容器中的python版本,如果没有python3则安装python3容器中安装Python的虚拟环境
# 容器内部是没有安装python3的pip工具,所以需要安装
apt install python3-pip
# 使用pip安装虚拟环境
pip3 install virtualenv -i https://pypi.douban.com/simple/
pip3 install virtualenvwrapper -i https://pypi.douban.com/simple/
# 配置虚拟环境的环境变量
# 执行命令
mkdir $HOME/.virtualenvs
# 执行命令,打开并编辑 ~/.bashrc
vim ~/.bashrc
# 文件末尾添加以下几行代码,:wq 保存退出。
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
# 刷新配置文件
source ~/.bashrc
# 创建虚拟环境
mkvirtualenv luffy -p python3将我们开发好的一个容器,打包成一个新的容器并使用
# 先把现有的前端nginx容器打包成镜像
docker commit lufei_pc front
# 停止并删除前端nginx服务容器
docker container stop lufei_pc
docker container rm lufei_pc
# 基于上面的front镜像重新创建一个容器。
# 真实服务器下的客户端vue项目目录 /home/luffy/lufei_pc/dist
# 真实服务器下的服务端drf项目目录 /home/luffy/luffyapi/static
docker run -itd -p 80:80 -v /home/luffy/lufei_pc/dist:/usr/share/nginx/html -v /home/luffy/luffyapi/static:/usr/share/nginx/static --name=lufei_pc frontnginx镜像
# 在docker中下载nginx镜像
docker image pull nginx
# 使用git把码云上面的编译过的vue项目克隆到服务器/home
# 在本地终端通过以下命令上传编译后的项目文件
git add -f lufei_pc/dist
# 阿里云服务器中,已经内置了git,所以可以直接从码云克隆项目下来: /home/luffy
# git clone 项目git地址
git clone https://gitee.com/mooluo/luffy.git
# 注意,上面提交的代码版本中,真正的前端项目编译代码在dev分支下面,所以我们需要切换分支
git checkout dev
# 创建nginx容器,并以80端口对外提供服务
# /usr/share/nginx/html 是nginx在安装时,系统默认分配的网站项目的根目录
docker run -itd -p 80:80 -v /home/luffy/lufei_pc/dist:/usr/share/nginx/html --name=lufei_pc nginx
# 执行上面的命令,理论上来说,就可以让前端项目,可以阿里云的IP地址访问到了。
"""
/etc/nginx # nginx容器中nginx的配置目录
/etc/nginx/conf.d/default.conf # 默认站点的配置文件
/usr/share/nginx/html # nginx容器中网站根目录
"""mysql镜像
# 如果之前的mysql已经镜像没有下载,则下载命令如下:
docker image pull mysql:5.7
# -e 设置容器内部的环境变量,一个容器在创建的时候,可以多个不同的环境
# 启动mysql容器,MYSQL_ROOT_PASSWORD 指代的就是mysql的root用户的登录密码
docker run -itd -p3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# 如果需要多台mysql容器安装在一台服务器中,那么容器内部的端口可以不用设置,但是真实物理系统的端口必须要修改,保证端口唯一!
# docker run -itd -p3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# docker run -itd -p3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# 我们可以在任意一个外部网路中,远程链接到数据库中
# 注意使用命令远程链接mysql,必须使用的地方有mysql
mysql -hIP -P端口 -uroot -p密码
# mysql -uroot -p123456 -h39.108.60.95docker container run的选项:
-e 就是设置容器内部的环境变量, 在docker容器的使用过程中, 有部分容器需要配置环境的,这些环境变量都是有下载镜像时官方指定的。
把本地的数据导入到容器的mysql数据库中
# 远程链接数据库
mysql -uroot -p123456 -h39.108.60.95
# 创建数据库
create database luffy charset=utf8mb4;
exit
# 把本地的数据库导出到桌面
mysqldump -uroot -p123 luffy > ~/Desktop/luffy.sql
# 把桌面下导出的数据库文件导入到docker容器中的mysql数据库
mysql -uroot -p123456 -h39.108.60.95 luffy < ~/Desktop/luffy.sqlredis容器
# 因此我们需要在docker中下载redis和mysql的容器
docker pull redis
# 创建redis容器并运行redis
docker run -itd -p6379:6379 redis
# 可以进入到容器中,进行测试redis是否已经成功启动
docker container exec -it <容器名称/容器ID> bash
# 容器内部,执行 redis-cli