您当前的位置: 首页 >  docker

Docker 系列(一) 镜像和容器介绍

蔚1 发布时间:2019-09-12 23:30:45 ,浏览量:1

Docker 可谓是开启了容器化技术的新时代,现在无论大中小公司基本上都对容器化技术有不同程度的尝试,或是已经进行了大量容器化的改造。Docker 提供了一个开始打包、运行的 App 的平台,把 App0和底层 Infrastructure(基础设施)隔离开来。

在本场 Chat 中,会讲到如下内容:

  • Docker 是干什么的
  • Docker 的组织结构
  • 什么是 Image
  • 什么是 Container
docker 是干什么的

docker 提供了一个开始,打包,运行的 app 的平台,把 app 和底层 infrastructure(基础设施)隔离开来。

在这里插入图片描述

Docker 的组织结构

Docker Engine 包括: * 后台进程(dockerd) * REST API Server * CLI 接口(docker)

在这里插入图片描述

底层技术支持:

* Namespaces:做隔离在 pid,net,ipc,mnt,uts* Control groups: 做资源限制* Union file systems: Containe 和 image 的分层

在这里插入图片描述

什么是 Image:
  • 文件和 meta data 的集合(root filesystem)
  • 分层的,并且每一层都可以添加改变删除文件,成为一个新的 image
  • 不同的 image 可以共享相同的 layer
  • Image 本身是 read-only 的

在这里插入图片描述

关于 docker 镜像的示例代码:

##镜像的获取docker pull [Tag]/[ImageName]##根据 dockerfile 构建一个 docker 镜像docker build -t(指定一个 Tag) xiaopeng/hello .(当前路径下的 Dovkerfile)##查看一个镜像的分层docker history [image ID]##查看所有镜像docker images##删除镜像docker rmi [imageID]##把一个容器变成镜像(不安全,不建议使用)docker commit [cantainer] [repository[:tag]] [flags]
什么是 Container
  • 通过 Image 创建(copy)
  • 在 Image layer 之上建立一个 container layer(可读写)
  • 类比面向对象:类和实例
  • Image 负责 app 的存储和分发,Container 负责运行 app

在这里插入图片描述

关于 docker 容器的示例代码:

##获取 docker 容器 iddocker ps -aqdocker container -aq##获取符合条件的容器docker ps -a | awk {'print$1'}docker container ls -f "status=exited" -q##后台交互启动容器docker run -it [container]##启动一个容器docker run [container]##后台方式启动容器docker run -d [container]##删除容器docker rm [cantainerID]##查看正在运行的容器docker ps##查看所有的容器docker ps -a

现在来创建一个简单的 dokcer images and container,我们首先创建 dockerfile 文件,文件内容为

 FROM centos  ## 引用基础镜像RUN yum install -y vim ## 运行 shell 命令 

此时我们 build 构建镜像的时候可以看到 running in 78a5c866d2b1。

在这里插入图片描述

在 build 过程中 生成了一个新的临时的 container,在临时的新的 container 里面去执行 shell 命令,最后 build 完成后就会删除这个临时的 container。

在这里插入图片描述

问题:docker run 之后状态总是 Exited 怎么解决

至此,我们已经学会的 docker 的基本应用。

本文首发于 GitChat,未经授权不得转载,转载需与 GitChat 联系。

阅读全文: http://gitbook.cn/gitchat/activity/5d79149ddfee9e67557f27ab

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX

关注
打赏
1688896170
查看更多评论

蔚1

暂无认证

  • 1浏览

    0关注

    4645博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0836s