持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情
docker commit 将容器制作成镜像文件
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
1.根据当前容器作为模板制作为镜像文件
docker commit -m="mayikt tomcat" -a="lijianb" 3a06b4c779a8 lijianb-tomcat:1.0
2.在以当前自己制作的镜像文件运行
docker run -p 8088:8080 lijianb-tomcat:1.0
数据卷就是宿主机上的一个文件或目录
容器内部文件与容器外部文件共享(一般共享文件夹)
数据卷--添加两种方式
-
直接命令形式添加 docker run -it -v 宿主机绝对路径目录:容器内目录 镜像文件名称
-
Dockerfile方式添加
挂载nginx html文件
- 创建挂载目录
mkdir -p /data/nginx/{conf,conf.d,html,logs}
- 启动docker容器
docker run --name nginx81 -d -p 81:80 -v /data/nginx/html:/usr/share/nginx/html nginx
-v /data/nginx/html 虚拟机目录 --挂载 容器目录 /usr/share/nginx/html
上传一个 html 放入到 /data/nginx/html
docker run --name nginx81 -d -p 81:80 -v /data/nginx/html:/usr/share/nginx/html nginx
-v /data/nginx/html: linux虚拟机目录
/usr/share/nginx/html 容器中html目录
docker底层运行原理
CS体系架构:client客户端,server服务端(比如docker,先安装安装包,才能使用)
BS体系架构:browser浏览器,server服务端(基于浏览器使用)
原理:首先启动docker,后台会有守护进程,监听docker build、docker pull、docker run等命令。比如docker run,接到命令后,现在本地检查是否存在镜像文件,如果没有该镜像文件,就回去docker hub中查找镜像文件,如果存在就会下载到本地镜像,容器再去运行。
基于docker安装tomcat服务器 是否需要配置jdk环境变量呢?
docker安装tomcat会自动安装jdk环境
docker安装tomcat:8 --jdk8 配置环境变量
docker安装tomcat:9 --jdk9 配置环境变量
如何封装配置环境依赖的呢?
Dockerfile---文件(描述了镜像文件的配置,打包成镜像文件)
镜像加载的原理
Linux文件系统由bootfs和rootfs两部分组成
bootfs:包含bootloader(引导加载程序)和 kernel(内核)
rootfs: root文件系统,包含的就是典型 Linux 系统中的/dev,/proc,/bin,/etc等标准目录和文件
不同的linux发行版,bootfs基本一样,而rootfs不同,如ubuntu,centos等
Docker镜像底层实际上是有多个不同的联合文件系统组成的
最底层:bootfs,并使用宿主机的bootfs-复用
第二层:root文件系统rootfs,称为base image
Union fs
然后再往上可以叠加其他的镜像文件
统一文件系统(Union File System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,隐藏多层的存在,我们看来只是存在一个文件系统。
所以当我们安装的tomcat镜像大小是600多MB 是因为里面还包含了jdk和centos的镜像
而centos镜像复用了宿主机的bootfs 下载的只有rootfs 所以小很多
DockerFile指令
-
FROM 指定父镜像: 基于哪个镜像image构建 指定基础镜像,必须为第一个命令
-
MAINTAINER :维护者
-
RUN: 容器创建的时候执行一段命令 构建镜像时执行的命令
-
ADD: 将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
-
COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
-
CMD:构建容器后调用,也就是在容器启动时才进行调用。 .sh执行文件
-
ENV: 设置环境变量
-
EXPOSE: 指定于外界交互的端口
-
VOLUME 用于指定持久化目录
-
WORKDIR 设置进入容器时的路径
Tomcat docker File:
\