Docker的镜像和容器介绍(一)

Docker基础详解
本文介绍了Docker的基础概念,包括其如何隔离应用程序与基础设施,Docker的组织结构,以及如何使用Docker构建和运行镜像与容器。同时提供了多个示例命令帮助理解。

docker是干什么的

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

Docker的组织结构

  1. Docker Engine包括:
    • 后台进程(dockerd)
    • REST API Server
    • CLI接口(docker)
  2. 底层技术支持:
    • 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 容器id
docker ps -aq
docker 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的基本应用~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值