什么是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地址
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应用
- 在开始测试前,在服务器安装Docker,Docker版本与开发版本一致
- 根据测试请求说明在镜像地址拉取镜像
- 运行镜像生成容器
- 访问项目,开始测试
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部署项目
# 先查看镜像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/项目名称