Docker容器技术05

Posted timesi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker容器技术05相关的知识,希望对你有一定的参考价值。

Docker镜像操作

学完了一些最基本的操作,接下来我们来学习一些关于docker镜像的基本操作。
首先我们来学习一下从docker hub上拉取镜像,以centos镜像为例,使用docker search命令搜索镜像:
技术分享图片
从图上可以看见我们从docker hub搜索到很多镜像,接着我们来学习镜像的拉取,使用docker pull命令将镜像从docker hub拉取到本地:
技术分享图片
这样我们可以通过docker images命令来查看本地的镜像:
技术分享图片
而我们下载到本地的镜像存放在/var/lib/docker/overlay2
技术分享图片
第一行就是我们下载的centos镜像在本地的文件。
我们学会了下载镜像,就应该了解一下删除镜像,删除镜像使用docker rmi命令:
技术分享图片
删除时我们可以使用镜像的名字也可以使用镜像的ID。
现在我们来学习如何构建镜像,构建镜像有以下两种方法:docker commit命令和dockerfile,我们先来学习用docker commit命令构建镜像。
docker commit命令一般用于将修改过后的镜像提交为一个新的镜像,首先我们先使用centos镜像起一个容器,接着对容器进行更改,然后使用docker commit命令构建新的镜像:
技术分享图片
接着用这个修改过的容器构建新的镜像:
技术分享图片
docker commit命令的语法是这样的docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS有如下几个选择:

  • -a :提交的镜像作者名字。

  • -c :使用Dockerfile指令来创建镜像。

  • -m :提交时的说明文字。

  • -p :在commit时,将容器暂停。
    构建完成镜像之后,我们来试一下构建好的镜像是不是能用:
    技术分享图片
    可以看到刚刚构建的镜像可以用。
    接下来我们来说一下使用Dockerfile构建镜像:
    技术分享图片
    首先建立一个空的docker文件夹,然后再docker文件夹里面新建一个Dockerfile文件(注意:这里的文件名字只能用dockerfile命名)
    技术分享图片
    建完之后我们执行以下操作,(注意:构建操作只能在和Dockerfile同级目录下执行):
    技术分享图片
    构建完成之后我们可以使用docker images命令查看:
    技术分享图片
    这里就可以看到我们刚刚构建的名为centos的镜像了。
    现在我们以这个镜像为模板运行容器:
    技术分享图片可以看到这里启动容器之后默认运行了我刚刚写在DockerfileCMD里面的东命令,接下来我们来详细的说一下Dockerfile的使用。
  • FROM指令
    DockerFile第一条必须为FROM指令。如果同一个DockerFile创建多个镜像时,可使用多个FROM指令。
  • MAINTAINER
    指定维护者的信息。
  • RUN
    每条RUN指令将在当前镜像基础上执行指定命令,并提交为新的镜像,因为镜像是分层的
  • CMD
    CMD的目的是为了在启动容器时提供一个默认的命令执行选项。如果用户启动容器时指定了运行的命令,则会覆盖掉CMD指定的命令。
  • EXPOSE
    Docker 容器对外映射的端口,需要在 docker run 的时候使用-p或者-P选项生效。
  • ENV
    指定一个环境变量,会被后面的RUN指令使用。
  • ADD
    ADD复制本地主机文件、目录或者远程文件URLS添加到容器指定路径中,ADD命令会在复制时解压压缩文件。
  • COPY
    COPY复制新文件或者目录从 并且添加到容器指定路径中,不能添加远程文件的URLS。
  • VOLUME
    创建一个可以从本地主机或其他容器挂载的挂载点。
  • WORKDIR
    为后续的RUN命令指定工作目录
    到此我们就学会了如何构建镜像!

以上是关于Docker容器技术05的主要内容,如果未能解决你的问题,请参考以下文章

炸裂的云计算-05Docker容器介绍

将 Docker 容器限制为单个 cpu 核心

虚拟化容器Docker核心技术实战视频课程

容器技术Docker云计算实战 镜像操作大总结

docker容器的--cpu-period和--cpu-quota选项 2019-05-22

Docker 容器相关技术