Docker 概念梳理

Docker 让开发者创建的应用脱离底层物理硬件的限制;能很方便通过网络进行传播,做到快速分发和部署。通过对应用的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)生命周期进行管理,达到应用组件级别的"一次封装,到处运行"。解决了一旦需要服务器迁移,往往需要对每个应用都进行重新部署和调试的问题。

基本概念

镜像

可以将它理解为一个只读的模板,描述一个镜像需要包括"名称+标签"信息。镜像自身是只读的。常用命令:

拉取镜像:docker pull IamgeName[:TAG]。#如果不显式指定TAG,则默认会选择latest标签
列出本地镜像:docker images
获取某镜像详细信息:docker inspect	
搜索镜像:docker search
删除镜像:docker rmi
清理镜像:docker image prune # 使用Docker一段时间后,系统中可能会遗留一些临时的镜像文件,以及一些没有被使用的镜像
上传镜像:docker push
使用Dockerfile创建镜像

Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile来快速创建自定义的镜像。

一般而言,Dockerfile主体内容分为四部分:基础镜像信息、维护者信息、镜像操作指令(配置镜像信息)和容器启动时执行指令(具体执行操作)。编写完成Dockerfile之后,可以通过docker [image] build命令来创建镜像。

基本的格式为docker build [OPTIONS] PATH | URL | -。
该命令将读取指定路径下(包括子目录)的Dockerfile,并将该路径下所有数据作为上下文(Context)发送给Docker服务端。
Docker服务端在校验Dockerfile格式通过后,逐条执行其中定义的指令,碰到ADD、COPY和RUN指令会生成一层新的镜像。
最终如果创建镜像成功,会返回最终镜像的ID。

容器

类似于一个轻量级的沙箱,是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而这些容器都是彼此相互隔离、互不可见的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。常用的命令:

新建容器:docker create # 命令选项包括容器运行模式相关、与容器环境配置相关、与容器资源限制和安全保护相关
启动容器:docker start
查看运行的容器:docker ps
新建并启动容器: docker run #守护态运行(Daemonized)可以通过添加-d参数来实现
查看容器输出:docker logs -f(-follow):持续保持输出
终止容器:docker stop
进入容器:docker exec -it 容器ID /bin/bash # --interactive:打开标准输入接受用户输入命令,--tty 分配伪终端
删除容器:docker rm
数据管理

在生产环境中使用Docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,需要对容器的数据进行管理操作。
容器中管理数据主要有两种方式:

  • 数据卷(Data Volumes):容器内数据直接映射到本地主机环境;

数据卷(Data Volumes)是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,数据卷可以在容器之间共享和重用,对数据卷的更新不会影响镜像,解耦开应用和数据。

创建数据卷:docker volume create -d local xxx #docker volume还支持inspect(查看详细信息)、ls(列出已有数据卷)
查看所创建数据卷:ls /var/lib/docker/volumes
绑定数据卷:docker [container] run --mount  #将主机本地的任意路径挂载到容器内作为数据卷,这种形式创建的数据卷称为绑定数据卷。
  • 数据卷容器(Data Volume Containers):使用特定容器维护数据卷。

可以利用数据卷容器对其中的数据卷进行备份、恢复,以实现数据的迁移。即使容器在运行中出现故障,用户也不必担心数据发生丢失,只需要快速地重新创建容器即可。

挂载数据卷:使用--volumes-from来挂载
端口映射与容器互联

Docker允许映射容器内应用的服务端口到本地宿主主机;可以实现多个容器间通过容器名来快速访问。

仓库

类似于代码仓库,是Docker集中存放镜像文件的场所。如官方提供的Docker Hub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值