容器编排:就是针对容器生命周期的管理,对容器的生命周期进行更快速方便的方式进行管理
- 依赖管理,当一个容器必须在另一个容器运行完成后,才能运行时,就需要进行依赖管理
- 副本数控制,容器有时候也需要集群,快的对容器集群进行弹性伸缩
- 配置共享,通过配置文件统一描述需要运行的服务相关信息,自动化的解析配置内容,并构建对应的服务
dockerfile# 基础镜像 FROM openjdk:8 # 将项目jar包拷贝到容器中 COPY ./springboot-docker-demo-1.0.0.jar app.jar # 配置项目环境变量 ENV APP_OPTS="" # JVM 环境变量 ENV JVM_OPTS="-Duser.timezone=Asia/Shanghai -Xms128m -Xmx128m" # 暴露端口 EXPOSE 8080 # 设置启动时命令 CMD ["sh", "-c", "java $JVM_OPTS -jar /app.jar $APP_OPTS"]
docker build -t springboot-docker:1.0.0 .
命令构建镜像docker run -d --rm -P springboot-docker:1.0.0
Docker 为我们提供的一个用于自定义构建镜像的一个配置文件:描述如何构建一个对象
利用 Docker 提供的 build 命令,指定 Dockerfile 文件,就可以按照配置的内容将镜像构建出来
作为开发者需要将自己开发好的项目打包成 Docker 镜像,便于后面直接作为 Docker 容器运行
作为运维人员需要构建更精简的基础设施服务镜像,满足公司的需求以及尽可能减少冗余的功能占用过多的资源
数据卷相当于是容器的虚拟文件系统和主机的真实文件系统之间的一个桥梁,建立数据卷就相当于是打通了容器于主机之间的文件交互通道,可以让容器运行时所产生的数据变更被保存到主机中,能够更方便的对数据进行备份以及保护
当我们在容器中运行一些关键的应用如MySQL、Redis等服务,其中都会存储着一些关键数据,这些数据是你希望即使删除容器也不应该被删除的,此时我们便需要用到数据卷了。
你可以将数据卷理解为文件目录的映射,我们可以通过 Docker 提供的相关命令,来将主机中的某一个文件目录映射到容器中,此时当你在容器中操作该目录下的文件时,实际上操作的就是主机中的文件。
docker volume ls
命令来查看已经存在的docker volume