docker基础

Docker是一个应用容器引擎,docker可以将运行环境和程序一起打包发布的容器,利用docker,可以将你的程序和运行环境一起发布,其他人拿到你的容器就可以直接运行,docker解决了“在我的机器上正常,在你的机器上就是运行不了的问题”
docker基础_第1张图片
因此,docker的优势在于可以让开发者将企业需要的各种应用及应用依赖文件封装在Docker镜像文件中,然后在任何物理设备(Linux设备或Window设备等)上安装运行实现虚拟化,让应用程序彻底脱离底层设备,可以在物理机之间灵活迁移部署
docker基础_第2张图片

image镜像

Docker 镜像可以看作是一个特殊的文件系统,可以理解为虚拟机的快照,包含打包的应用程序,还提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

docker基础_第3张图片

2Docker镜像分层的理解
docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。
bootfs(boot file system) 主要包含bootloader和kernel,bootloader主要是引导加载kernel,Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的, 包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。
rootfs(root file system), 在bootfs之上。包含的就是典型Linux系统中的/dev, /proc, /bin, /etc等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等,可以结合下图进行理解。

container容器

docker基础_第4张图片
容器就像一台台运行起来的虚拟机,里面运行着你的程序,每个容器是独立运行的,

容器,就是一种轻量级的虚拟化技术,目的和虚拟机一样,都是为了创造“隔离环境”。但是它不像VM采用操作系统级的资源隔离,容器采用的是进程级的系统隔离

dockerfile

docker基础_第5张图片
dockerfile是自动化脚本,用来创建镜像,就像在虚拟机中安装系统和软件一样,通过这个自动化脚本执行安装,

docker运行逻辑

docker基础_第6张图片

eg

docker基础_第7张图片
1 在程序根目录创建dockerfile文件
docker基础_第8张图片
2 文件第一行用FROM命令,指定一个镜像,FROM+镜像名称+版本
docker基础_第9张图片

3 WORKDIR 指定docker命令的工作路径,路径不存在docker会自动创建

docker基础_第10张图片
4 第三行 使用COPY命令,将程序拷贝到docker镜像中,COPY+本地路径+目标路径 “.”代表根目录下所有的文件,第二个“.”代表docker当前的工作路径
docker基础_第11张图片
5 第4行RUN,标识可以运行任意的linux命令,linux镜像下安装python的关联,这样我们就创建了一个docker镜像
docker基础_第12张图片
6 第5行, 调用cmd命令,CMD是docker运行起来以后要执行的命令,可以理解为虚拟机运行起来以后,进入python运行代码,主义泣别RUN和CMD,RUN 是docker命令,用来创建镜像,CMD是运行容器时使用的

docker基础_第13张图片
7 接下来用docker build创建一个镜像 -t指定镜像的名字
docker基础_第14张图片
8 下一步用docker run启动一个容器,-p指定端口的映射,本地80映射dicker 5000 ,-d后台运行
以上这个容器就创建好了,
docker基础_第15张图片

也可以下载docker desktop以图形界面来监控 管理docker

你可能感兴趣的:(docker,容器,linux)