Docker
是一个开源的应用容器虚拟化平台。具体做的就是快速的帮助开发者搭建应用周期里所需的各种环境,快速地部署项目以缩短开发周期。正是Docker
给应用开发带来的高效率,使其在短短几年便越发地火热,项目也日趋成熟。
Docker简介
核心设计思路:build,ship and run any app,any where
build
:构建镜像,封装依赖ship
:pull Docker镜像(Docker Image)run
:运行Docker容器(Docker Container)any app
:任何可以Dockerize(容器化)的appany where
:物理机、云主机、虚拟机…
与虚拟机(VM)的比较:
Docker使用
如果你还没有安装它,你可以访问https://docs.docker.com/engine/installation/开始了解,其中包含了各种系统下的安装教材。
安装完成之后,试着创建一个简单的HelloWorld(在哪都这样Q.Q)
docker run Hello-World
docker–引用docker程序
run–用于创建或运行容器的子命令
Hello-World–用于创建容器的镜像名
Docker引擎收到命令后将进行如下操作
- 检查本地是否有Hello-World软件镜像
- 没有则从Docker Hub下载镜像
- 使用镜像创建容器并运行
窗口输出Hello-World则表明容器成功运行。(同样的,在你熟练掌握后可以尝试着从Docker Hub获取别的镜像,例如:尝试新的软件、新的操作系统、以及一些有风险的实验)
其中镜像、容器是Docker的基本概念(参考https://docs.docker.com/engine/getstarted/step_two/),如果懒得每次敲sudo的话可以:
#Create the docker group $ sudo groupadd docker #Add your user to the docker group $ sudo usermod -aG docker $USER #Log out and log back in so that your group membership is re-evaluated
除了下载镜像,你也可以自己创建镜像:
- 首先你需要编写Dockerfile文件(用来描述组成镜像的文件、环境和命令)
- 在Dockerfile所在的目录使用
docker build -t imagename
创建你的新镜像
当然如果你要是在docker hub
上注册了帐号,还可以把镜像推送到你的的docker hub
去,感觉就像是用GitHub
一样。
(参考https://docs.docker.com/engine/getstarted/step_four/)
刚才只实现了在单个主机上单容器应用的部署,而Docker
还提供了更强大的应用部署功能-Docker
三剑客
Compose
Machine
Swarm
Compose:多容器应用部署利器
在部署需要多容器的应用时,使用Compose文件将配置和容器间的依赖写在配置文件里,然后,使用单个命令从配置中创建和启动所有服务。使用Dockerfile定义应用程序的环境,以便可以在任何地方重现它。
在docker-compose.yml中定义组成应用程序的服务,以便它们可以在孤立的环境中一起运行。
最后,运行docker-compose up和Compose将启动并运行整个应用程序。
**Swarm && Machine :跨主机集群部署工具
**
Machine:简化的Docker命令行安装工具。它允许您在虚拟主机上安装Docker Engine,并使用docker-machine
命令管理主机。
Swarm:管理Docker集群(Docker Machine),增强Docker跨主机能力。它将一个Docker主机池变成一个单一的虚拟Docker主机。 因为Docker Swarm服务于标准的Docker API,任何已经与Docker守护进程通信的工具都可以使用Swarm透明扩展到多个主机,并使用docker-swarm
命令管理个节点主机。
为了与集群部署相适应,Docker 也可以为容器提供四种网络模式
- host 模式,使用 –net=host 指定。
- container 模式,使用 –net=container:NAME_or_ID 指定。
- none 模式,使用 –net=none 指定。
- bridge 模式,使用 –net=bridge 指定,默认设置。
并通过docker-network
进行管理
Referenced:
Docker学习笔记:http://blog.opskumu.com/docker.html
Docker官方文档:https://docs.docker.com/