什么是docker

news/2024/10/18 0:26:31/

1.什么是docker

Docker 是一个开源的应用容器引擎,是虚拟化的一种轻量级替代技术。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,开销很低。docker解决了服务器昂贵的问题,生产环境和测试环境不一致的问题。

2.什么要使用docker而不使用虚拟机

    1).虚拟机的缺点

        (1).资源占用多:虚拟机运行需要大量的内存、硬盘和CPU,而且是独占这些资源
        (2).启动慢:虚拟机也是个操作系统,启动很慢
    2).docker优点
        (1).体积小、占用资源少
        (2).启动快:docker是个容器,是个进程,既然是进程所以启动比虚拟机(操作系统)快
        (3).进程隔离:在一台服务器上可以部署多个docker容器,而且互不干扰
        (4).迁移轻松:docker可以制作镜像进行迁移,非常容易

3.docker有什么用

    1).搭建微服务环境:一个服务器可以安装多个容器,实现微服务,并且降低服务器成本
    2).降低服务器成本:在少量的服务器上可以通过docker安装多个容器,不用购买多个服务器
    3).提供一次性的环境:docker可以将运行项目所需要的资源、环境全部集中打包在一个镜像内,无需再去配置搭建项目运行所需要的资源和环境(无需重复配置),有利于测试、开发和部署

4.docker基本概念

    1).image(镜像):Docker 镜像可以看作是一个特殊的文件系统,提供了容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(环境变量、端口等),但是镜像在构建之后就不会被改变。

    2).Container(容器):Docker 容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。
    3).Dockerfile :Dockerfile是一个指令的集合文件,可以利用Dockerfile 制作一个镜像

5.docker基本命令

    1).查询镜像
     docker search 镜像名称
    2).拉取镜像
     docker pull 镜像名称
     3).启动容器(以tomcat作为实例)
     docker run -d --name fist_tomcat --privileged=true -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime -p 8081:8080 docker.io/tomcat
          -d 表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
         -p 表示宿主机(8081)与容器的端口映射(8080,Tomcat容器固定的端口为8080,必须映射到8080)
         –name 表示容器名称,用一个有意义的名称命名即可。
         -v 表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
         -e 运行上海时区格式
         –privileged=true 开启特权,可以设置容器里的内核参数
         -e TZ=“Asia/Shanghai” -v /etc/localtime:/etc/localtime都是用来解决容器时区的问题

6.Dockerfile 基本命令

    1).FROM 基础惊喜:基于那个镜像作为基础去构建新的镜像
    2).COPY 源文件 目标目录:复制指令,从上下文目录中复制文件或者目录到容器里指定路径
    3).ADD 源文件 目标目录:和COPY基本一样,但是ADD会自动解压压缩包
    4).RUN:执行命令
    5).CMD:执行命令(和RUN类似,但二者运行的时间点不同,CMD 在docker run 时运行,RUN 是在 docker build)
         (1).注意:在执行docker run命令后,CMD命令指定的程序会被docker run后面的程序所覆盖
         (2).注意:如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效
在这里插入图片描述
    6).ENTRYPOINT:类似于CMD,但是ENTRYPOINT的指令参数不会被docker run后面的指令所覆盖
    7).ENV:设置环境变量
    8).VOLUME 系统目录 docker目录:挂载目录,类似于-V
    9).EXPOSE 8080:声明端口
    10).WORKDIR:类似于cd命令,进入那个文件夹

    运行Dockerfile命令:
    docker build -t 容器名称:版本 .
    .是上下文路径,也就是dockerFile所在的目录
    docker build -t tomcat:v1.3 .

7.Dockerfile示例

在这里插入图片描述

FROM tomcat:8.5.38-jre8ARG JAR_PATH=./target
#1.删除ROOT文件夹,避免war包不解压,[2,3]指定时区
RUN rm -rf /usr/local/tomcat/webapps/ROOT \&& /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezoneADD ${JAR_PATH}/*.war /usr/local/tomcat/webapps/ROOT.warCMD ["/usr/local/tomcat/bin/catalina.sh", "run"]EXPOSE 8080

http://www.ppmy.cn/news/589301.html

相关文章

使用K55实现Linux x86_64进程注入

关于K55 K55是一款 Payload注入工具&#xff0c;该工具可以向正在运行的进程注入x86_64 shellcode Payload。该工具使用现代C11技术开发&#xff0c;并且继承了某些传统的C Linux函数&#xff0c;比如说ptrace()等等。在目标进程中生成的shellcode长度为27个字节&#xff0c;并…

PTA——L1-016 查验身份证(C语言)

你们的点赞收藏关注&#xff0c;是我唯一的创作动力&#xff01; 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#…

十大公认音质好的骨传导耳机,几款音质排行靠前的骨传导耳机

骨传导耳机是通过头部骨迷路传递声音&#xff0c;而不是直接通过耳膜的振动来传递声音。与传统的入耳式耳机相比&#xff0c;骨传导耳机不会堵耳朵&#xff0c;在跑步、骑车等运动时可以更好的接收外界环境音&#xff0c;保护听力&#xff0c;提升安全性。此外&#xff0c;骨传…

Speedoffice(ppt)中如何插入表格

1&#xff0c;打开PPT后&#xff0c;鼠标选择表格要插入的位置。 ​2&#xff0c;左键单击PPT上方工具栏中的【插入】选项--插入表格。如图所示 ​3&#xff0c;有2种方式可以选择&#xff0c;可以直接选择自带的表格&#xff0c;也可以自定义表格行列&#xff0c;根据自己需求…

win7升级win10时报0x80072F8F - 0x20000错误处理

把放了几年的itx主板zotec fusion e350找出来&#xff0c;准备做个下载机&#xff0c;上电开机没问题&#xff0c;进bios发现时间都重置了&#xff0c;多半是电池没电了。装机还是老套路&#xff0c;先装win7再升级win10&#xff0c;装win7挺顺利&#xff0c;运行win10升级程序…

Java转义工具类StringEscapeUtils的学习笔记

Java转义工具类StringEscapeUtils的学习笔记 前言 ​ 在java.commons.lang3 的包中有许多方便好用的工具类&#xff0c;类似于处理字符串的StringUtils&#xff0c;处理日期的DateUtil等等&#xff0c;StringEscapeUtils也是其中的一员。 ​ StringEscapeUtils 是在java.com…

diy nas配置推荐2020_NAS的DIY配置

主板:七彩虹(Colorful)i-AE50 V14 ITX主板(AMD APU E350) 链接:http://item.jd.com/498013.html 价格:559元 内存:金士顿(Kingston)DDR3 1333 4G 台式机内存 链接:http://item.jd.com/253363.html 价格:209元(杯具的价格,涨价很久了) 机箱:万由 存储机箱 热拔插机箱 NA…

CSV导出内容包含逗号

在项目中&#xff0c;需要导出查询结果集&#xff0c;但是每天记录的其中一项描述内容可以包含逗号&#xff0c;一开始的解决方案是直接把内容的逗号替换为点。很显然改动了用户体验&#xff0c;客户可不允许这样做&#xff0c;没得办法直接到网上找夏解决方案。 Example Year…