什么是docker?
Docker的构想是想要实现“Build,Ship and Run Any App,Anywhere”,即通过对应用的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)生命周期进行管理,达到应用组件“一次封装,到处运行的目的”。
Docker和常见的虚拟机方式的不同之处:
docker在开发和运维中的优势
- 更快速的交付和部署
- 更高效的资源利用
- 更轻松的迁移和扩展
docker架构
- 镜像images : 用于创建docker容器的模版/文件系统/配置
- 容器container :类似于一个轻量级的沙箱,docker利用容器来运行和隔离应用;容器间相互隔离,互不相见;容器可以看作是一个简易版的linux系统环境
- 仓库: 集中存放镜像文件的地方,类似于代码仓库
- 客户端client:docker客户端通过命令行或者其他工具使用docker sdk与docker的守护进程通信
docker镜像
命令 | 用途 |
---|---|
docker pull NAME[:TAG] | 获取镜像,不显示指定TAG,默认会选择latest标签,例如:docker pull tomcat |
docker images docker images -a //列出所有的镜像文件 | 查看镜像信息 |
docker tag ubuntu:latest myubuntu:latest | 使用tag命令添加镜像标签 |
docker search tomcat | 搜索镜像:搜索远端仓库中心共享的镜像 |
docker rm 镜像id | 删除镜像 |
docker容器
容器是机器上的沙盒进程,与主机上的所有其他进程隔离。容器是一个普通的操作系统进程,除了这个进程隔离,有自己的文件系统,自己的网络,和自己的与主机分离的隔离进程树。
用途 | 命令 |
---|---|
创建容器 | docker create -it. ubuntu:latest |
启动容器 | docker. start ubuntu |
查看运行中的 容器 | docker ps |
创建并启动容器 | docker run ubuntu |
终止容器 | docker stop ubuntu |
删除容器 | docker rm -f ubuntu |
一个容器如何与另一个容器通信呢?
答案是 网络
记住这个规则:如果两个容器在同一个网络上,它们可以相互通信。如果他们不是,他们就不能。
docker仓库
仓库是几种存放镜像的地方,有公开仓库和私有仓库。注册服务器是存放仓库的具体服务器
注册服务器是存放仓库的具体服务器:
- docker官方维护的公共镜像仓库:https://hub.docker.com
- 阿里云镜像
- 时速云镜像
docker 利用仓库管理镜像的设计理念与git非常相似,实际上在理念设计上借鉴了git的很多优秀思想
安装docker
官网地址:https://docs.docker.com/get-docker/
1.下载地址:
阿里云的mac版本的docker.dmg下载地址:
http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/