docker进阶machine和compose学习

Owen Jia 2019年03月27日 136次浏览

官网关于machine的介绍是非常详细的,建议之间看英文版的:docker machine

Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage the hosts with docker-machine commands. You can use Machine to create Docker hosts on your local Mac or Windows box, on your company network, in your data center, or on cloud providers like Azure, AWS, or Digital Ocean.

上面这句话从官网copy来,可以很清楚明白machine是个什么。docker machine用来创建带docker engine的虚拟机并管理它们。

Docker Engine

一般我们说的docker指docker engine,是c/s架构的应用,包括cli\api\daemon三大模块。docker engine是运行container的基础环境服务,可以看下面的官方解释图。

engine

docker engine是和服务器结合在一起的,凡是需要运行docker container的服务器(linux等)都需要安装docker engine,也可以理解为docker化的主机。

Docker Machine

machine是用来创建engine的工具,一般在本地安装machine,有命令:docker-machine。machine支持远处创建engine并快速批量的创建engine,看下面官方提供的图片。

machine

在window环境安装docker toolbox后,第一次运行docker client会发现一段提示:

default-machine

第一次运行是会创建一个名叫default的machine,可以在vitual box中查看管理所有的machine。

Create a machine

官方给出了很详细的docker machine cli手册:command-line reference,也可以通过命令docker-machine --help查看各个命令的使用介绍。

这里创建一个名叫local的machine,windows可以在virtualbox中查看。

docker-machine create --driver virtualbox local

create-machine

执行docker-machine ls可以查看目前的machine数量。

machine-ls

专业运维同学docker-machine命令是绕不开的技能点,一般开发掌握docker命令即可。

通过命令docker ssh local,可以进入该machine,exit可以退出来。

Docker compose

Compose命令可以组织和管理多个container,同时去启动或者关闭等等操作。多个container组合成为一个project,而compose用来管理这个project。它提供docker-compose.yaml文件进行多个container的配置管理,在compose里container成为service。

官网文档地址:compose doc

样例展示docker-compose.yaml文件内容:

version: '3'
services:
  web:
    container_name: hahaha
    build:
      context: .
      args:
        JAR_FILE: sample-1.0.1-35.jar
    depends_on:
      - hello2
    ports:
      - "8080:8080"
    environment:
      - ENVS=dev
  hello2:
    image: hello-world

Compose command:docker-compose build 和 docker build命令差不多,详细的Compose命令可以查看docker-compose --help

对于linux环境下machine&compose client需要单独安装,网上相关资料很多就不介绍了。


作者:Owen Jia,推荐关注他们的博客网站:Owen Blog