Docker

Docker镜像

镜像是基于联合文件系统的一种层式的结构,由一系列指令一步一步构建出来。用户基于镜像来运行自己的容器。
镜像是Docker生命周期中的构建或打包阶段。
一个镜像可以有多个标签。

Docker容器

容器是基于镜像启动起来的,容器中可以运行一个或多个进程。
容器是启动或执行阶段。
一个容器拥有自己的网络、IP地址,以及一个用来和宿主机进行通信的桥接网络接口。

Docker常用命令

docker run -p 80:80 --name 容器名 -it 容器镜像:基于xx镜像启动一个容器 ,以交互的方式启动。-p参数将容器的80端口绑定到主机的80端口上。
docker ps: 列出所有运行中的容器
docker ps -a: 列出所有的容器
docker exec -it 容器名 bash: 在容器内运行交互命令
docker logs -f 容器名:跟踪容器的日志
docker rm -f 容器名 :删除运行中的Docker容器
docker rm docker ps -a -q : 删除所有的容器
docker images: 列出所有的镜像
docker login: 登录到Docker Hub
docker build --no-cache -t="xx/xx" . :忽略Dockerfile的构建缓存
docker history 镜像名:可看到构建镜像的每一层,以及创建这些层的Dockerfile指令。

构建镜像

一般基于一个已有的基础镜像来构建新镜像。推荐使用Dockerfile构建镜像,Dockerfile由一系列指令和参数组成。每条指令,如FROM,都必须为大写字母,且后面要跟随一个参数FROM ubuntu:14.04。RUN指令用来运行一条指令。
Dockerfile中的指令会按顺序从上到下执行,每条指令都会创建一个新的镜像层并对镜像进行提交。

Docker大体上按照如下流程执行Dockerfile中的指令

  • Docker从基础镜像运行一个容器
  • 执行一条指令,对容器做出修改
  • 执行类似docker commit的操作,提交一个新的镜像层
  • Docker再基于刚提交的镜像运行一个新容器
  • 执行Dockerfile中的下一条指令,直到所有指令都执行完毕

如果用户的Dockerfile由于某些原因(如某条指令失败了)没有正常结束,那么用户将得到一个可以使用的镜像,方便调试。
使用docker build命令来构建镜像,Dockerfile中的所有指令都会被执行并且提交,并且在该命令成功后返回一个新镜像。

写Dockerfile好的实践

  • 创建短暂的container
    短暂意味着container可以被停止和摧毁,用很小的构建和配置代价来重建和替换。
  • 理解构建上下文
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,531评论 0 120
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,607评论 15 147
  • 微商这么几年来的发展,真的是经历过了很多的大风大浪,每一个简短的蜕变都是更加的完美,微商做什么好?但是微商发...
    ec6e3dd8d44b阅读 1,237评论 0 1
  • 如您所见,我是一只公猫,可我跟那些只会抓老鼠的猫不一样。我是一只宠物猫,比起那些喜欢在地上吐舌头打滚满身脏兮兮的狗...
    蕤花遗令阅读 505评论 0 0
  • 自媒体火了,火到这个概念已经混沌不清。一个人开个公众账号叫自媒体,一堆人开一个也叫自媒体,一个公司开一个,还叫自媒...
    凡凡哟阅读 254评论 0 0