Docker

  1. 什么是Docker?

Docker是一款可以解决运行环境和配置问题的软件容器引擎,

方便做持续集成并有助于整体发布的容器虚拟化技术

  1. 为什么需要Docker或者Docker的优势是什么?

1、交付物标准化

Docker是软件工程领域的“标准化”交付组件,最恰到好处的类比是“集装箱”。

集装箱将零散、不易搬运的大量物品封装成一个整体,集装箱更重要的意义在于它提供了一种通用的封装货物的标准,卡车、火车、货轮、桥吊等运输或搬运工具采用此标准,隧道、桥梁等也采用此标准。以集装箱为中心的标准化设计大大提高了物流体系的运行效率。

传统的软件交付物包括:应用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准化组件。Docker的标准化交付物称为“镜像”,它包含了应用程序及其所依赖的运行环境,大大简化了应用交付的模式。

2、一次构建,多次交付

类似于集装箱的“一次装箱,多次运输”,Docker镜像可以做到“一次构建,多次交付”。当涉及到应用程序多副本部署或者应用程序迁移时,更能体现Docker的价值。

3、应用隔离

集装箱可以有效做到货物之间的隔离,使化学物品和食品可以堆砌在一起运输。Docker可以隔离不同应用程序之间的相互影响,但是比虚拟机开销更小。

  1. Docker与虚拟机有何不同
  2. Docker是如何工作的?
  3. Docker中的镜像、容器、仓库分别是什么意思?

镜像:Docker的镜像实际上由一层一层的文件系统组成

容器:Docker容器是由Docker镜像创建的运行实例。

仓库:Docker 仓库是用来包含镜像的位置

  1. Docker容器有几种状态

Dockerfile

用于创建image镜像的模板文件,出于管理和安全的考虑,docker官方建议所有的镜像文件应该由dockerfile来创建,而当前不少用户把docker当虚拟机来使用,甚至容器中安装SSH,从安全的角度,这是不恰当的。

Image

镜像文件,对比PC端的概念,我们可以把它理解为服务器端的可执行软件包。一旦打包生成,如存在安全问题,那这些问题也被一并打包,最后导致安全事件。

Container

运行起来的image文件就是容器了,从外来看就是一个应用,可对外提供服务了。

所以不难发现,docker容器的生命周期,就是一个镜像文件从产生、运行到停止的过程。

  1. 有没有办法识别Docker容器的状态?

查看所有doker状态:docker ps -a

查看容器(我的容器名tf-serving)的状态

docker stats tf-serving

停止和开启容器

docker stop -f 容器

docker start 容器

  1. 能说几个Docker的常用命令吗?

启动容器,比如tomcat

1.docker run-itd-p 60001:8080 tomcat:9.0

2.docker run-p 60001:8080 docker.io/tomcat

进入容器目录下

docker exec-it containerId/bin/bash

将war复制到webapps目录下

docker cp xxx.war containerID:/usr/1ocal/tomcat/webapps/

  1. 什么是Dockerfile?

(1)Dockerfile是一个描述文件,里面包含若干条命令,每条命令都会对基础文件系统创建新的层次结构。

(2)dockerfile用于快速有序且直观地完成对镜像的定制。

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

  1. Dockerfile的常用指令有哪些?

FROM       基础镜像

COPY       复制文件     

ADD        添加文件

RUN        要执行的命令

CMD        容器启动时要执行的命令

EXPOSE     默认向外暴漏端口

VOLUME     创建挂载点

WORKDIR    工作目录

USER       当前操作用户

  1. Docker的数据卷有了解过吗?它的作用是什么?

数据卷是一个可以供一个或多个容器使用的特殊目录。

可以达到以下目的:

1. 绕过“拷贝写”系统,以达到本地磁盘IO的性能,(比如运行一个容器,在容器中对数据卷修改内容,会直接改变宿主机上的数据卷中的内容,所以是本地磁盘IO的性能,而不是先在容器中写一份,最后还要将容器中的修改的内容拷贝出来进行同步。)

2. 绕过“拷贝写”系统,有些文件不需要在docker commit打包进镜像文件。

3. 在多个容器间共享目录

4. 在宿主和容器间共享目录

5. 在宿主和容器间共享一个文件。

  1. 容器与宿主机之间如何进行数据拷贝?

docker cp <containerId>:/file/path/within/container /host/path/target

  1. Docker的服务编排有过了解吗?如何实现?
  2. docker有3大核心:镜像、容器、仓库

15.Docker的思想:集装箱标准化隔离

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值