最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • docker常见用法

    正文概述 掘金(卖油条的。)   2021-03-02   816

    本文是docker相关的整理,不是入门教程。


    概述

    docker is a standardized unit of software,可以更轻量的实现虚拟机的资源隔离和分配功能,可以用来搭建一致的开发、运行环境,或者在同一个host machine上搭建多个不同环境。相关术语可以参考这里,详细命令请参考这里、

    整体架构如下

    docker常见用法

    docker使用c/s架构,其中client是用户直接使用docker的方式,比如用来执行docker build,server是指的docker daemon,client的server之间通过基于unix sockets或network interface的rest api通信,当我们调用相关命令后,具体的动作由daemon来完成。

    在docker中每一个我们使用隔离环境叫做container,一个container可以简单的看成是一个在host machine中与其他进程隔离的进程,这种隔离使用了linux中的kernel namespaces and cgroups技术实现。

    每一个container都是运行着的image实例,image为container提供独立的文件系统,这个文件系统中需要包含应用需要运行的所有东西,包括依赖、配置、脚本、二进制等。

    image要么是从registry下载而来,要么是我们通过dockerfile自定义创建而来。
    其中registry是一个存放image的仓库类似于npm仓库,我们可以在里面挑选(白嫖)自己需要的image,也可以我们通过dockerfile文件自定义image。

    镜像管理

    镜像(image)只是个用来实例化容器(container)的模板,镜像的管理就是对镜像的增删查等。

    获取镜像

    对于一些公共镜像,我们可以直接从仓库里拉取,下面介绍一下相关命令

    • docker images 列出本机上的镜像,同一种镜像可能有不同tag来区分版本
    • docker pull imagename 从仓库下载对应镜像
    • docker rmi imagename 删除镜像,可以使用-f 强制删除
    • docker tag 为镜像添加标签

    创建镜像

    为了创建一个image我们需要创建一个Dockerfile文件,其中包含用来组装一个image的命令,然后使用docker build就可以有自己的image了。

    docker build命令除了可以用来执行dockerfile中的命令外,还为image提供了一个上下文,这个上下文是一个文件路径,通常为当前目录.,在dockerfile中的一些命令中起作用,比如使用copy在上下文和镜像中复制文件。

    比如我们在一个目录下创建文件dockerfileindex.html,前者的内容为

    FROM nginx
    COPY index.html /usr/share/nginx/html/
    

    在命令行执行docker build -t test .就可以用来创建一个基于nginx 名为test的image。

    dockerfile格式

    其中包含各种命令,格式为INSTRUCTION arguments,其中INSTRUCTION是各种指令,每个指令组成镜像的一层,可以以层为单位进行缓存,当指令修改生成新镜像时只需要更新修改过的层。
    指令不区分大小写,但建议大写方便识别。常用指令如下

    • from 指定一个基础镜像,剩下的都会在此基础上添加层级,比如FROM node:12
    • arg ARG <name>[=<default value>] 可以用来在build时使用--build-arg <varname>=<value>传入的变量, 比如ARG status,除了这种方式还有很多其他预定义的变量。 dockerfile中的变量有两种使用形式
      • ${status}
      • $status
    • workdir WORKDIR /path/to/workdir 为RUN, CMD, ENTRYPOINT, COPY and ADD设置工作目录
    • run 在docker build时用来执行相关命令,比如RUN yarn install --registry https://registry.npm.taobao.org/
    • cmd 如果有多个,只有最后一个生效,是docker run后执行的默认指令,比如CMD ["/usr/bin/wc","--help"],也可以同时提供一个entrypoint,cmd为其提供参数
    • entrypoint 功能和cmd类似
    • copy 从上下文往容器的文件系统复制文件
    • env ENV <key>=<value> ... 在dorcker run时通过-e username="ritchie"添加变量

    更多用法参考官方文档

    容器管理

    容器管理就是如何处理一个动态的实例,包括状态转换和其他控制

    • docker run imagename 运行镜像从而生成容器,可以在参数中为容器添加不同参数,比如执行前面的自己创建的imagedocker run --name nginx-test -p 8080:80 -d test,这样就可以在本地访问8080端口访问,映射的是容器的80端口
    • docker start/stop/restart/kill/pause/unpause/rm/create docker状态转换
    • docker exec 在容器中执行命令,比如docker exec -it 186095755f bash表示执行对应容器的bash命令
    • docker ps 列出各种状态的容器,容器状态包括
      • created(已创建)
      • restarting(重启中)
      • running(运行中)
      • removing(迁移中)
      • paused(暂停)
      • exited(停止)
      • dead(死亡)
    • docker inspect 查询对应容器的元信息,其中的端口映射还可以使用docker port获得

    完结


    起源地下载网 » docker常见用法

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元