1》使用的driver

1〉generic

使用带有SSH的现有VM/主机创建机器。

如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管理,那么这一点非常有用。
驱动程序(driver)在create命令上执行以下任务列表:

  • 如果docker不在主机上运行,它将被自动安装
  • 更新主机包(apt-get更新,yum更新…)
  • 它生成证书来保护docker守护进程
  • 如果主机使用systemd,它将创建/etc/systemd/system/docker.service.d/10-machine.conf
  • docker守护进程重新启动,从而停止所有正在运行的容器
  • 主机名被更新以适应机器名

选项:

userdeMBP:~ user$ docker-machine create --driver generic --help
...
//下面是得到的是多出的与--driver generic相关的参数
--generic-engine-port "2376" Docker engine port [$GENERIC_ENGINE_PORT] docker引擎端口,默认为2376
--generic-ip-address IP Address of machine [$GENERIC_IP_ADDRESS] 机器的IP地址
--generic-ssh-key SSH private key path (if not provided, default SSH key will be used) [$GENERIC_SSH_KEY]
SSH私钥路径(如果没有提供,默认的SSH私钥将会被使用)
--generic-ssh-port "22" SSH port [$GENERIC_SSH_PORT] SSH端口,默认为22
--generic-ssh-user "root"       SSH user [$GENERIC_SSH_USER] SSH用户名,默认为roo

Sudo privileges :可以使用--generic-ssh-user标志指定用于SSH到主机的用户。该用户需要无密码的sudo特权。如果不是这样,则需要编辑sudoers文件并使用NOPASSWD将用户配置为sudoer。见https://help.ubuntu.com/community/Sudoers。

Systemd设置 : 对于使用systemd的系统,如果你有一个在 /etc/systemd/system/docker.service中定义的现有配置,这可能与docker-machine创建的设置冲突。确保在这个位置上没有任何其他配置文件覆盖[ExecStart]设置。一旦确认删除了任何冲突设置,请运行sudo systemctl daemon reload,然后再运行sudo systemctl restart docker

例子:

要创建机器实例,需要指定--driver generic、主机的IP地址或DNS名称以及授权连接主机的SSH私钥的路径。

docker-machine create -d generic 运行的波折过程及遇见的问题

2> virtualbox

使用VirtualBox在本地创建机器

   --virtualbox-boot2docker-url
      The URL of the boot2docker image. Defaults to the latest available version [$VIRTUALBOX_BOOT2DOCKER_URL]
boot2docker镜像的URL。默认为最新的可用版本
--virtualbox-cpu-count "1"
      number of CPUs for the machine (-1 to use the number of CPUs available) [$VIRTUALBOX_CPU_COUNT]
机器的cpu数量.默认为1(设置为-1,则使用可用的cpu数量)
--virtualbox-disk-size "20000"
      Size of disk for host in MB [$VIRTUALBOX_DISK_SIZE] 主机的磁盘大小,以兆为单位。默认为20000
--virtualbox-host-dns-resolver
      Use the host DNS resolver [$VIRTUALBOX_HOST_DNS_RESOLVER] 使用主机DNS解析器
--virtualbox-hostonly-cidr "192.168.99.1/24"
      Specify the Host Only CIDR [$VIRTUALBOX_HOSTONLY_CIDR] 只指定CIDR格式的主机地址,默认为192.168.99.1/24
--virtualbox-hostonly-nicpromisc "deny"
      Specify the Host Only Network Adapter Promiscuous Mode [$VIRTUALBOX_HOSTONLY_NIC_PROMISC]
指定主机唯一网络适配器混杂模式
--virtualbox-hostonly-nictype "82540EM"
      Specify the Host Only Network Adapter Type [$VIRTUALBOX_HOSTONLY_NIC_TYPE]
指定仅主机的网络适配器类型,默认为82540EM
--virtualbox-hostonly-no-dhcp
      Disable the Host Only DHCP Server [$VIRTUALBOX_HOSTONLY_NO_DHCP] 只禁用主机DHCP服务器
--virtualbox-import-boot2docker-vm
      The name of a Boot2Docker VM to import [$VIRTUALBOX_BOOT2DOCKER_IMPORT_VM]
要导入的Boot2Docker虚拟机的名字
--virtualbox-memory "1024"
      Size of memory for host in MB [$VIRTUALBOX_MEMORY_SIZE] 主机的内存大小,以兆为单位,默认为1024
--virtualbox-nat-nictype "82540EM"
      Specify the Network Adapter Type [$VIRTUALBOX_NAT_NICTYPE] 指定网络适配器类型,默认为82540EM
--virtualbox-no-dns-proxy
      Disable proxying all DNS requests to the host [$VIRTUALBOX_NO_DNS_PROXY]
      禁用代理所有DNS请求到主机
--virtualbox-no-share
      Disable the mount of your home directory [$VIRTUALBOX_NO_SHARE] 禁用你主目录的挂载
--virtualbox-no-vtx-check
      Disable checking for the availability of hardware virtualization before the vm is started [$VIRTUALBOX_NO_VTX_CHECK]
在启动vm之前禁用硬件虚拟化可用性检查
--virtualbox-share-folder
      Mount the specified directory instead of the default home location. Format: dir:name [$VIRTUALBOX_SHARE_FOLDER]
装入指定的目录,而不是默认的主位置。格式为:目录:名字
--virtualbox-ui-type "headless"
      Specify the UI Type: (gui|sdl|headless|separate) [$VIRTUALBOX_UI_TYPE] 指定UI类型,默认为headless

--virtualbox-boot2docker-url标志有几种不同的形式。默认情况下,如果没有为此标志指定值,机器将在本地检查boot2docker ISO。如果找到一个,它将用作创建机器的ISO。如果没有找到,可以在boot2docker/boot2docker上下载并存储最新的ISO版本,以备将来使用。因此如果你想要更新存储的boot2docker ISO,你必须要故意地在机器中运行docker-machine upgrade命令。

--virtualbox-boot2docker-url=""是默认的设置,但是它也支持通过http://file://协议来指定。file://查看本地指定的路径以定位ISO:例如,你可以指定--virtualbox-boot2docker-url file://$HOME/Downloads/rc.iso 测试你已经下载的候选版本iso。你还可以使用http://form 直接从Internet获得ISO

为了定制主机唯一适配器,可以使用--virtualbox-hostonly-cidr标志。它指定主机IP,机器计算VirtualBox DHCP服务器地址(子网上的一个在.1到.25之间的随机IP),这样就不会与指定的主机IP冲突。机器指定DHCP的下界为.100,上界为.254。例如,指定的CIDR为192.168.24.1/24时,DHCP服务器位于192.168.24.2-25之间,下限为192.168.24.100,上限为192.168.24.254。

使用标志--virtualbox-share-folder,你可以指定主机与创建的机器共享哪个文件夹。格式是 本地文件夹:机器文件夹。例如 \\?\C:\docker-share:\home\users\。如果你在Windows cmd中使用docker-machine带着docker-toolbox指定这个标志,它看起来就像C:\docker-share\\:/home/users, : sign需要转义。

实现例子:

看本博客Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-1-cli

其他的之后使用到再添加

Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver的更多相关文章

  1. Docker技术入门与实战 第二版-学习笔记-8-网络功能network-3-容器访问控制和自定义网桥

    1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 ...

  2. Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-1-cli

    Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境 Docker Machine是一种工具,它允许你在虚拟主机 ...

  3. Docker技术入门与实战 第二版-学习笔记-7-数据管理(volume)

    Docker 数据管理 为什么要进行数据管理呢?因为当我们在使用container时,可能会在里面创建一些数据或文件,但是当我们停掉或删除这个容器时,这些数据或文件也会同样被删除,这是我们并不想看见的 ...

  4. Docker技术入门与实战 第二版-学习笔记-5-容器-命令及限制内存与cpu资源

    1.启动容器 启动容器有两种方式: 基于镜像新建一个容器并启动 将在终止状态(stopped)的容器重新启动 1)新建并启动——docker run 比如在启动ubuntu:14.04容器,并输出“H ...

  5. Docker技术入门与实战 第二版-学习笔记-3-Dockerfile 指令详解

    前面已经讲解了FROM.RUN指令,还提及了COPY.ADD,接下来学习其他的指令 5.Dockerfile 指令详解 1> COPY 复制文件 格式: COPY  <源路径> .. ...

  6. Docker技术入门与实战 第二版-学习笔记-8-网络功能network-1-单个host上的容器网络

    Docker 中的网络功能介绍 Docker 允许通过外部访问容器或容器互联的方式来提供网络服务 1) 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -p或 -P参数 ...

  7. Docker技术入门与实战 第二版-学习笔记-6-仓库

    仓库(Repository)是集中存放镜像的地方 一个容易混淆的概念是注册服务器(Registry). 实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像. ...

  8. Docker技术入门与实战 第二版-学习笔记-2-镜像构建

    3.利用 commit 理解镜像构成 在之前的例子中,我们所使用的都是来自于 Docker Hub 的镜像. 直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,我们就需要定制这些镜 ...

  9. Docker技术入门与实战 第二版-学习笔记-4-Dockerfile外其他生成镜像的方法

    其它生成镜像的方法 即除了标准地使用Dockerfile来生成镜像外,还有一些其他的方法 1)从 rootfs 压缩包导入 格式:docker import [选项] <文件>|<U ...

随机推荐

  1. 判断ArryaList有没有重复对象的方法

    ArrayList类是List类下一种常用的子类,如果要判断容器里面的对象是否有相等,有两种方法. 下面是自定义的一个Student类,假设容器里重复是按照对象的两个属性都相等. /** * @aut ...

  2. ORM--Entity Framework 学习(01)

    关键词:Entity Framework:微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上.EF提供变更跟踪.唯一性约束.惰性加载.查询事物等.开发 ...

  3. 微信小程序 引入公共页面的几种情况

    1.不带参数 首先在pages文件夹中新建一个template文件夹,文件夹中新建一个template.wxml文件,代码如下 <!--template.wxml--> <templ ...

  4. js-ES6学习笔记-Class(6)

    1.类相当于实例的原型,所有在类中定义的方法,都会被实例继承.如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”. 2.父类的静态方法,可 ...

  5. 从零开始学习html(十二)CSS布局模型——上

    一.css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了. 布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之 ...

  6. mpvue最佳实践 , 美团出的一个小程序框架

    看手机微信,看到说美团出了1个小程序框架,  mpvue 搜下来试试,看了网上的一个对比 ----------------- 以下为引用 我们对微信小程序.mpvue.WePY 这三个开发框架的主要能 ...

  7. 活字格Web应用平台学习笔记5 - 编辑和删除记录

    了几天,今天上活字格网站一看,他们获奖了,好厉害 荣膺盘古奖!活字格引领企业信息化建设新潮流 好吧,我继续学习,希望早点拿到认证证书. 今天要学的是编辑删除记录.目标: 还是接续之前的工程.做好后是这 ...

  8. JSP内置对象——application对象

    下面来举个具体的实例: 运行结果: 其中,city,postcode,email是我自己保存的属性名称,然后最后一行还获取到了当前JSP或者SERVLET的引擎名及版本号.

  9. Flutter——设置appBar的高度

    使用脚手架Scaffold可以设置AppBar,想要设置高度,在AppBar外包一层PreferredSize,设置preferredSize的属性为想要的高度即可. Scaffold( appBar ...

  10. JavaScript Math对象方法

    console.log(Math.abs(123));//绝对值 console.log(Math.ceil(123.3));//向上舍入 console.log(Math.floor(123));/ ...