一、Docker的整体使用图(CICD)
Docker是以进程为单位进行隔离,所以不建议一个容器启动多个进程
二、Docker是什么
1.物理机
硬件成本
资源浪费
硬件资源限制
运维成本
2.虚拟化技术(操作系统隔离)
VMware、Virtual Box
更好的利用资源
容易扩展
3.容器化技术(进程隔离)
三、应用实战
1.docker安装
1.device-mapper逻辑卷管理工具
yum install -y yum-utils device-mapper-persistent-data lvm2
2.配置yum的源(以下两个任选其一,aliyun的对于国内来说更快)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装
yum clean all
yum makecache fast
yum -y install docker-ce
4.启动docker
systemctl(centos7以上版本支持的命令)
systemctl start docker
//设置为开机启动
systemctl start docker.service
systemctl enable docker.service
5.查看docker支持的命令
docker
2.docker的使用(阿里云提供了免费的镜像加速器,配置后可以加速pull)
//下载镜像
docker pull tomcat
//查看所有镜像
docker images
//运行镜像
//1.-d表示后台进程运行;containerName自定义的容器名;-p映射到得端口;port为宿主机的端口;dockerport为映射到docker容器中的端口;imageName为镜像名此处应为tomcat
//2.run时,如果镜像未提前拉取,会触发拉取
docker run -d --name containerName -p port:dockerport imageName
例如:docker run -d --name first_tomcat -p 8080:8080 tomcat
镜像运行成为容器
//查看运行的容器
docker ps
docker ps -l
//进入容器,containerId容器id
docker exec -it containerId /bin/bash
//退出容器
exit
//进入容器后查看文件,与Liunx操作系统操作一致
例如:ll /usr/local/tomcat
//停止容器(containerId可以不写全,可以自动匹配)
docker stop containerId
docker rm containerId
//查找镜像
docker search tomcat
//查看镜像详细信息
docker inspect tomcat
//查看资源
docker status
//查看容器日志
docker logs containerid
3.运行实例
3.1查看运行的容器
3.2停止镜像
3.3docker status
四、Image Container
一个软件包通过docker构建为一个镜像;一个镜像可以被运行为一个容器
镜像的每一层都是只读的
从上往下查找,一旦找到就返回
五、UnionFS联合文件系统
Linux系统分为内核空间、用户空间
bootfs,不同发行版本来说bootfs是一致的,可以被复用
rootfs,不同发行版本来说是不同的(/etc、/bin、/dev、/tmp)
六、Dockerfile
dockerfile是一个配置文件,是docker用来构建镜像的配置文件
1.创建一个dockerfile文件,输入如下指令
2.使用docker对于该文件进行构建
docker build -t gupaoedu:hello-image
3.指令:
FROM:当前构建镜像的基础镜像
RUN:执行一个命令,在docker build期间执行的,每一个RUN命令都会新建一个层
ADD/COPY:把宿主机的文件拷贝到镜像内
WORKDIR:指定宿主机的工作目录,如果不存在则创建。且后续命令都在此工作目录执行
VOLUME:(数据卷,数据持久化),可以把容器中的文件系统映射到宿主机的文件系统
EXPOSE:发布端口
CMD:docker run的时候会默认执行的命令,如果有多个CMD,那么只有最后一个会生效,可以通过docker run --参数 去覆盖Dockerfile中运行的指令
ENTRYPOINT:docker run的时候会默认执行的命令
七、把springboot项目构建成image
1.创建Dockerfile(无后缀)
2.把包和此文件上传到服务器docker的工作目录下
3.使用docker build进行构建docker build -t imageName
例如:docker build -t yu:eurekaserver
4.查看镜像docker images,存在yu:erukaserver镜像
5.使用docker run -d --name containerName -p 9090:9090 imageName即可
例如:docker run -d --name eurekaserver-9090 -p 9090:9090 yu:eurekaserver