Docker介绍、常用命令、项目部署

什么是Docker

简单说:Docker就是一个虚拟机,专业说:它是一个开源的容器平台。它和我们常用的VMware有很多相似的地方。

名词解释

镜像/images 由本体打包出来的文件。并不是文件本身,但是具有该文件的功能。举个不太贴切的例子,就像镜子里的你,虽然不是真的你本人,但是你做的任何动作他也会做。

仓库/DockerHub 存放镜像的地方,类似GitHub。包括MySQL、Tomcat、Redis、Nginx等等。有很多第三方提供的镜像,您可以通过pull命令下载使用。您也可以通过push命令上传镜像到仓库。

容器/container 运行的虚拟机,它是由镜像运行时生成的,并且一个镜像可以运行出多个容器。

Docker File 指定镜像是如何构建的。简单说就是把你的项目通过build命令构建成镜像【然后镜像run以后就会变成容器,在容器中运行你的项目】

tar文件 可以把镜像文件打包成tar文件

他们之间的关系:

docker

Docker特点

Docker虚拟技术与传统虚拟技术的区别

Docker思想来源于集装箱,核心思想是隔离。

  • Docker采用最简易的内核,只有几M
  • 容器相互独立,能区分计算资源

Docker思想

开发人员把项目打成war包+环境打包+数据打包成镜像,上传到DockerHub仓库,运维或者测试只需要下载开发的镜像,然后运行就可以。

以下内容为笔记,未经实际操作

Docker安装

以centos7为例

设置服务器IP地址

python 复制代码
1、修改
BOOTPROTO=static
ONBOOT=yes
1表示使用静态IP
2表示重启时自动启用静态IP
2、增加
IPADDR=根据当前服务网络IP设置
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=114.114.114.114

more ifcfg-ens33命令可以查看文件修改后的内容

  • cd /etc/sysconfig/network-scripts
  • vi ifcfg-ens33修改文件内容

重启网络服务systemctl restart network.service

关闭防火墙systemctl stop firewalld.service

关掉本地防火墙和杀毒软件

现在就可以通过xshell进行远程连接了,现在在xshell里操作

安装Docker依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

安装国内下载源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker

yum install -y docker-ce

启动

systemctl start docker

验证

docker version

Docker应用

  1. 在开始测试前,在服务器安装Docker,Docker版本与开发版本一致
  2. 根据测试请求说明在镜像地址拉取镜像
  3. 运行镜像生成容器
  4. 访问项目,开始测试

Docker常用命令

搜索镜像

复制代码
docker search 镜像名称

拉取镜像

复制代码
docker pull 镜像名称

查看本地镜像(及镜像信息)

复制代码
docker images

运行镜像生成容器

复制代码
docker run -d -p 9999:8080 镜像ID

-d: 在后台运行 -p 9999:8080: 服务器端口映射到容器的端口 执行后会返回一长串数,证明已经正常运行

查看本地正在运行的容器

复制代码
docker ps

查看所有历史运行的容器

复制代码
docker ps -a

查看容器内部日志信息

复制代码
docker logs -f 容器ID

进入容器

复制代码
docker exec -it 容器ID /bin/bash

ls -l就可以查看有哪些文件了 d开头表示文件夹 -开头表示文件

退出容器

复制代码
exit

启动/停止/重启容器

复制代码
docker start/stop/restart 容器ID

Docker部署项目

python 复制代码
# 先查看镜像ID
docker images
# 运行
docker run -d -p 9999:8080 镜像ID
# 查看正在运行的容器
docker ps
# 进入容器
docker exec -it 容器ID /bin/bash
# 查看文件【1】
ls -l
# 进入放项目的目录
cd 文件夹名
# 需要上传war文件,先退出容器
# 下载一个上传工具lrzsz
exit
# 下载lrzsz(下载过程中都选y)
yum install lrzsz
# 下载好以后切换到根目录
cd /opt
# 查看根目录文件
ls
# 上传war包
rz
# 查看是否上传成功
ls
# 查看正在运行的容器(方便复制ID)
docker ps
# 复制文件到容器下对应的文件夹
# 文件夹路径可以在上面【1】看到
docker cp 文件名.war 容器ID:文件夹路径
# 进入容器查看
docker exec -it 容器ID /bin/bash
# 查看文件
ls -l
# 进入放文件的文件夹
cd 文件夹名
# 查看文件(确认是否复制过来了)
# 一般都是复制到Tomcat的webapps文件夹中
# 如果Tomcat正在运行,会自动将war包解包
ls -l

现在就已经把项目部署到了测试环境了。

访问项目

http://IPADDR中设置的IP地址:9999/项目名称

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
睡觉z2 小时前
Jenkins持续集成系统
运维·ci/cd·jenkins
MANONGMN4 小时前
Kubernetes(K8s)常用命令全解析:从基础到进阶
云原生·容器·kubernetes
Wy_编程5 小时前
Linux文件相关命令
linux·运维
Viking_bird6 小时前
centos 7.5 + Hadoop 3.2.4 集群搭建
linux·运维·服务器·hadoop·centos
黑客影儿7 小时前
Kali Linux 环境中的系统配置文件与用户配置文件大全
linux·运维·程序人生·安全·网络安全·系统安全·学习方法
岚天start7 小时前
Linux系统网络排查工具总结
linux·运维·网络·监控·扫描·连通性·流量
Lovyk9 小时前
基于 Ansible 与 Jinja2 模板的 LNMP 环境及 WordPress 自动化部署实践
linux·运维·服务器·自动化·ansible
知白守黑2679 小时前
Linux磁盘阵列
linux·运维·服务器
维尔切10 小时前
Linux中基于Centos7使用lamp架构搭建个人论坛(wordpress)
linux·运维·架构
__lll_11 小时前
手把手教你用 Docker 部署 Vue 项目(含国内镜像加速 + 踩坑指南)
docker