标签:ima 查看 inf dig www 原理 docke 写入 ash
让我们带着问题学习docker
Docker是什么?为什么要使用docker?
可能云计算的方向的并不陌生,Docker属于Linux容器的一种封装,提供简易容器使用接口,是目前流行的容器解决方案. Docker将应用程序与该程序的依赖打包在一个文件里面,运行这个文件,就产生一个虚拟的容器.
为什么使用Docker?
1) 更快速的交付和部署,而且容器启动很快的,秒级别,但是在spring boot项目整合,启动时间依然很长,后续如果找到原因会分享出来
2)更高效的虚拟化和更轻松的迁移和扩展:一次打包,到处运行
3)更简单的管理
Docker打包建议在linux环境下,我的linux是Centos 7
补充一下yum安装原理
/** 使用yum没少安装linux中软件,有想过其中的原理吗? YUM(缩写"Yellow dog Updater Modified"),是一个软件包管理器,yum从指定的 自动下载RPM包并安装,能够很好解决依赖关系的问题地方 YUM的基本工作原理 服务器端:: 在服务器端存放所有RPM软件包,然后分析每个RPM文件的依赖关系,将 这些数据记录成文件存放在服务器的某指定目录内 客户端:如果需要安装某个软件时,先下载服务器上面的记录的依赖性关系文件,可通过WWW或者FTP方式,通过对服务器端下载的记录数进行分析,然后取得相关软件,一次全部下载下来进行安装 **/
Docker的三个主要概念
Docker image :镜像是只读的,镜像中包含所需运行的文件,镜像用来创建container,一个镜像可以运行多个container,镜像可以创建Dockerfile创建,也可以从Docker hub/registry上下载
Docker container:容器是Docker的运行的组件,启动一个镜像就是一个容器,容器是一个隔离的环境,多个容器之间不会相互影响
Docker安装
安装docker只需运行下面的命令
yum install docker
安装完成之后,启动docker服务,并设置开机启动
//开启服务 systemctl start docker.service //设置开机启动 systemctl enable docker.service
查看版本信息
docker version
常用的命令
//拉取docker镜像 docker pull image_name //查看宿主机器上的镜像,docker镜像保存在/var/lib/docker目录下 docker images //删除镜像 docker rmi image_name/镜像id //查看当前有哪些容器正在运行 docker ps //启动 停止,重启容器的命令 docker start/stop/restart 容器名字/容器的id //后台启动一个容器,如果想进入容器的命令 docker attach container的名字/id //删除容器的命令 docker 人民 container名字/id 查看容器的命令 docker info
Dockerfile概念
docker镜像是一个特殊的文件系统,除了提供容器所虚的程序,库,资源,配置文件外.还包含运行时的一些配置参数(如匿名卷,环境变量,用户),镜像中不包含动态的参数,其内容在构建之后就不会再改变了,镜像的定制实际上就是定制每一层所添加的配置文件,如果把每一层修改,安装和构建的命令写入到一个脚本,用这个脚本来构建,定制镜像,这个脚本就是Dockerfile
Dockerfile是一个文本文件,其内包含一条条的指令(Instruction),有了Dockerfile,当我们需要定制自己额外的需求,只需在Dockerfile上添加或者修改即可,重新生成image
dockerfile目录及格式
FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD service-zuul-1.0.0-SNAPSHOT.jar app.jar #RUN bash -c ‘touch /app.jar‘ ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] EXPOSE 80
这是zuul的dockerfile脚本文件,这里简单减少指令作用
01 From 构建的镜像继承自某个base image
FROM <image> FROM <image>:<tag> FROM <image>@<digest>
from指令Dockerfile的第一指令,其中tag和和digest是可选的,如果不提供则使用latest
02 Run 在镜像的构建过程中执行特定的命令,并生成一个中间的镜像
03 EXPOSE 为构建镜像设置监听端口,使容器在运行时监听
EXPOSE指令并不会让容器监听host的端口,如果需要,需要在doceker run -p参数来发布到host的某个端口
04 ENV
在构建的镜像中设置环境变量,在后续的Dockerfile指令中可以直接使用
05 ADD
在构建镜像时,复制上下文中的文件到镜像,这里复制的打包好的springboot 的jar文件
06 ENTRYPOINT
指定镜像的执行程序,CMD和ENTRYPOINT至少得使用一个
07 VOLUME
指定镜像内的目录为数据卷
在容器运行的时候,dockerfile会把镜像的数据卷的内容复制到容器中去
springboot+maven+docker项目搭建
http://www.cnblogs.com/ityouknow/p/8599093.html
标签:ima 查看 inf dig www 原理 docke 写入 ash
原文地址:https://www.cnblogs.com/developerxiaofeng/p/9120786.html