Docker 基本知识简单梳理

1、使用场景

目前微服务技术普遍被很多公司使用,微服务化要求将原本垂直架构的单体应用要拆分成水平架构的一个个模块话的服务,各个服务之间通过消息中间件如MQ进行通信合作,大多数微服务技术都是基于各公司自研的云平台或基于其他大厂提供的云平台,通过云平台可以很方便管理各个应用。
容器化部署可以简化交付的运维压力,并且由于容器化部署可以是的同一个镜像可以在各个平台上运行,简化硬件差异带来的运维部署难度。

2、Docker架构

关于Docker要了解三个基本概念:

1、镜像: image类似于一个linux文件系统,毕竟 “everything is files”。
2、容器: 镜像是静态的,容器时动态的,类似于操作系统中的软件和进程的关系, 容器就是 处于 运行状态的镜像。
3、仓库:获取镜像的服务器,类似于maven仓库。我们可以在docker仓库中获取相应的镜像文件,在本地运行 获取的镜像文件。
在这里插入图片描述

3、容器镜像的使用

1、容器使用:
   docker pull ** 用于获取镜像文件
   docker run ** 启动容器(**为镜像)
   docker stop <容器 ID> 停止容器
   docker restart <容器 ID> 重启容器

2、镜像使用:
  docker images  来列出本地主机上的镜像
  docker build   从零开始来创建一个新的镜像,这种方式需要指定 Dockerfile文件,里面的命令用来告诉Docker如何构建镜像。其中 Dockerfile 类似于 makefile,都是内置一些命令用于构建编译。

4. Dockerfile编写

目前团队使用dockerfile构建镜像,通过Dockerfile可以实现一键部署,这样云平台可以通过执行Dockerfile的方式来构建生成镜像文件

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

简单的Dockerfile demo如下:

FROM  < image >
MAINTAINER   < name >

LABEL  < key >=< value > < key >=< value >....…
ENV  < key >=< value >

CMD [“executable”,“param1”,“param2”]
CMD [“param1”,“param2”]
CMD command param1 param2

COPY  < src >… < dest >
WORKDIR   /path/to/workdir
RUN  < command >

1、FROM
功能为指定基础镜像,并且必须是第一条指令。
如果不以任何镜像为基础,那么写法为:FROM scratch。
同时意味着接下来所写的指令将作为镜像的第一层开始
2、RUN
功能为运行指定的命令

RUN命令有两种格式

RUN < command >
RUN [“executable”, “param1”, “param2”]
3、CMD
功能为容器启动时要运行的命令
语法有三种写法:

CMD [“executable”,“param1”,“param2”]
CMD [“param1”,“param2”]
CMD command param1 param2
第三种比较好理解了,就是 shell 的执行方式和写法

第一种和第二种都是可执行文件加上参数的形式
RUN & CMD
不要把RUN和CMD搞混了。

RUN是构件容器时就运行的命令以及提交运行结果

CMD是容器启动时执行的命令,在构件时并不运行,构件时紧紧指定了这个命令到底是个什么样子
4、LABEL
功能是为镜像指定标签
5、MAINTAINER
指定作者
6、ENV
功能为设置环境变量
7、ADD
一个复制命令,把文件复制到镜像中。
8、COPY
复制命令
与ADD的区别:
COPY的只能是本地文件,其他用法一致

参考blog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一个开源的容器化平台,它可以帮助开发者将应用程序及其所有的依赖打包成一个可移植的容器,然后在不同的环境中进行部署和运行。 以下是一些关于Docker基本知识: 1. 容器化:Docker使用容器化技术来隔离应用程序及其依赖。每个容器都运行在主机操作系统的隔离环境中,相互之间互不影响。 2. 镜像(Image):Docker镜像是一个只读的模板,包含了运行应用程序所需的所有文件、软件和依赖。镜像可以用来创建容器。 3. 容器(Container):Docker容器是从镜像创建的实例,它可以被启动、停止、删除等。每个容器都是相互隔离的运行环境,可以独立地运行应用程序。 4. 仓库(Registry):Docker仓库是用来存储和分享镜像的地方。Docker Hub是最常见的公共仓库,你可以从中下载和上传镜像。你也可以搭建自己的私有仓库。 5. Dockerfile:Dockerfile是一个文本文件,用来定义如何构建一个Docker镜像。它包含了一系列的指令和配置,通过执行这些指令可以自动化地构建镜像。 6. Docker Compose:Docker Compose是一个工具,用于定义和运行多个容器组成的应用程序。它使用一个YAML文件来配置应用程序的各个组件和依赖关系。 7. Docker网络:Docker提供了多种网络模式,用于在容器之间进行通信。默认情况下,每个容器都有自己独立的网络命名空间,可以通过指定IP地址或容器名称进行访问。 这些是Docker的一些基本概念和术语,希望能帮助你入门。如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值