Docker概念与常用命令
什么是Docker?
- Docker是PaaS提供商dotCloud开源的基于LXC的,源代码托管在Github上的,基于Go语⾔言并遵从Apache2.0协议开源。
- Docker可以让开发者打包他们的应⽤用以及依赖包到⼀一个轻量量级、可移植的容器器中,然后发布到任何流行的Linux机器器上,也可以实现虚拟化。
- 容器器是完全使⽤用沙箱机制,相互之间不不会有任何接口(类似iPhone 的 app),更更重要的是容器器性能开销极低。
Docker的应用场景
- Web 应⽤用的⾃自动化打包和发布.
- 创建轻量、私有的PaaS环境.
- 自动化测试和持续集成(CI)/持续部署(CD).
- 部署并扩展Web应⽤用、数据库和后端服务器.
VM与Container
Docker 的优点
- 秒级启动,秒级停止,空间资源占⽤用极少(几M)
- 实现进程级别的隔离
- 可在普通服务器上建立成百上千个 docker 实例
- 加快开发测试部署的速度
- 简化版本管理
Docker 架构
Docker 三大核心
Docker 镜像(Images)
- 类似于虚拟机镜像,但是更轻量,可以理解为面向Docker引擎的只读模板
- 可从DockerHub下载数以千记的、由各应用官方发布的应用镜像,比如Redis、Mysql、nginx等
- 镜像可以用来创建容器
Docker 容器(Container)
- 容器器是从镜像创建的应⽤用运⾏行行实例例,可以将其启动、停⽌止、重启、删除
- 可以把容器器看做是⼀一个简易易版的 Linux 环境(包括 root 用户权限、进程空间、⽤用户空间和⽹网络空间等)和运行在其中的应⽤用程序打包而成的应用盒子
- 镜像本身是只读的,容器从镜像启动之后,Docker会在镜像的最上层创建一个可写层,而镜像本身将保持不不变
Docker 仓库(Registry)
- 仓库是集中存放镜像文件的场所,为Docker镜像⽂文件的分发和管理提供了便捷的途径
仓库分为公开仓库(Public)和私有仓库(Private)两种形式
- 公开仓库——Docker Hub、Docker Pool
- 私有仓库——Docker registry、Docker Trusted Registry
- push 镜像到仓库,从仓库pull下镜像
常用命令
Docker 客户端
# docker
获取⼀个新的镜像
# docker pull ubuntu:13.10
列出镜像列表
# docker images
查找镜像
# docker search httpd
创建/更新镜像
# docker commit -m="has update" -a=“sunweiwei" 8c8024bc508a mtime/ubuntu:v2
删除镜像
# docker rmi 015e47e33893
# docker rmi -f 015e47e33893
设置镜像标签
# docker tag 493789124fdd mtime/ubuntu:dev
推送镜像
# docker login
# docker push sundful/ubuntu:v2
启动容器
交互式进入容器中
docker run -i -t ubuntu:15.10 /bin/bash
在容器中安装新的程序
docker run centos yum -y install vim
查看容器
列出当前正在运行的容器
# docker ps
列出所有的容器
# docker ps -a
列出最近一次启动的容器
# docker ps -l
对容器的操作
删除容器
# docker rm `docker ps -a -q`
# docker rm c94027fc1465/nauseous_wilson
停止、启动、重启、杀死一个容器
# docker stop c94027fc1465/nauseous_wilton
# docker start c94027fc1465/nauseous_wilson
# docker restart c94027fc1465/nauseous_wilson
# docker kill c94027fc1465/nauseous_wilson
从一个容器中取日志
# docker logs c94027fc1465/nauseous_wilton
列出容器里面被改变的文件或者目录,A 增加的,D 删除的,C 被改变的
# docker diff c94027fc1465/nauseous_wilton
显示一个运行的容器里面的进程信息
# docker top c94027fc1465/nauseous_wilton
从容器里面拷贝文件/目录到本地一个路径
# docker cp c94027fc1465/nauseous_wilton:/home/mtime/a.txt /data/test/
进入容器
# docker exec -ti c94027fc1465/nauseous_wilton /bin/bash
推送镜像到私有仓库
# docker tag mtime/ubuntu:v2 192.168.9.204:5000/mtime/ubuntu:v2
# docker push 192.168.9.204:5000/mtime/ubuntu:v2
- 上一篇: OSI七层模型详解
- 下一篇: 上游库更新后,如何同步一个 fork