知识点:
什么是Docker?
Docker是容器化平台,组装所有程序,运用运行在该平台上,提供的打包部署及运行,是部署运用程序简易化,类比成java虚拟机,所有代码都运行在虚拟机上。
所有容器是独立的关系,但是共享宿主机的所有资源,跟虚拟机有差异
什么是镜像?
相当于maven,中的jar包,是文件,也是别人写好的*。
安装过程:
安装要求:
Docker运行在centos7或centos8上要求的系统为64位,系统的内核版本位3.10以上。
安装yum的工具集和docker存储插件:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置aliyun:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
设置那个源最快就使用哪个:
centos 8使用:
sudo yum makecache timer 或 dnf makecache
centos 7使用:
sudo yum makecache fast
安装docker:
yum install -y docker-ce
启动docker:
service docker start
查看docker版本:
docker version
从docker*仓库下载demo测试,可能网络问题造成:
docker pull hello-world
启动demo:
docker run hello-world
常用命令:
docker pull 镜像名<:tags> 从远处仓库抽取镜像,相当于从maven仓库拉取jar包
docker images -查看本地镜像
docker run <-p 宿主机端口:容器端口> <-d(后台运行)> <--name 名称>镜像名<:tags> -创建容器,启动应用,记得宿主机关闭防火墙,
需要进入容器把webapps.dist中的内容复制到webapps文件夹下,宿主机和容器的关系:请求宿主机会转发给容器端口9090端口
docker ps -查看正在运行中的镜像
docker rm <-f> 容器id -删除容器
docker rmi <-f> 镜像名:<tags> -删除镜像
docker exec [-it] 容器id 命令 进入容器执行命令
exit 退出容器docker远程仓库:https://hub.docker.com/ 查看镜像信息
docker生命周期:
Dockerfile镜像描述文件:
FROM <镜像名:tags> -基础镜像
WORKDIR 目录 -切换工作目录
ADD <源资源> 存放目录 -镜像中添加资源
RUN 命令 -构建时执行命令
ENV 变量名 值 -设置全局变量
CMD 命令 -设置默认执行命令,最后一个才会被执行,不一定被执行,可被替换
ENTRYPOINT 命令 -用于容器启动时执行,最后一个才会被执行,一定执行
docker build -t 镜像名<:tags> Dockerfile目录 -创建镜像
容器间Link单向通信:
docker容器创建,建立虚拟ip,如果容器启动时创建容器名称,可以实现按照名称连接,利用 --name 当前容器名称,--link 指向容器名称
Bridge网桥双向通信:
网桥不仅可以实现容器间的通讯,也可以实现容器与外界的通讯,在宿主机创建虚拟网卡,相当于网关,实现内部通信,与外部通讯,通过宿主机的物理网卡进行地址转换
docker network ls -查询所有网桥连接
docker network create -d 网桥名
docker network connect 网桥名 容器名
容器间资源共享:
集群部署配置文件相同,无需多处配置,通过挂在挂在宿主机路径,第一种方式:启动容器时增加参数 -v 宿主机路径:容器内挂在路径 ,第二种方式:创建共享容器,docker create --name 容器名 -v 宿主机路径:容器内挂在路径 容器名 /bin/true ,启动增加参数,--volumes-from 共享容器名
Docker-composs容器编排工具:
单机多容器编排工作,让容器间启动有序。从镜像构建到部署一个脚本执行完成,属于运维工作,不做阐述。