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. [日常] Go语言圣经--作用域,基础数据类型,整型

    go语言圣经-作用域 1.一个声明语句将程序中的实体和一个名字关联,比如一个函数或一个变量 2.一个变量的生命周期是指程序运行时变量存在的有效时间段;声明语句的作用域对应的是一个源代码的文本区域,它是 ...

  2. Shiro遇到的SecurityManager红色警告

    问题如图 需要添加一个导入 import org.apache.shiro.mgt.SecurityManager; 这样就不会报错了

  3. Java_万年历(简单)

    1.方法,需要一个年份,一个月份.然后在控制台输出日历 // 输入一个年份和一个月份显示日历 public static void printCalendar(int year, int month) ...

  4. (三)MongoDB数据库注意

    1.数据库名 数据库也通过名字来标识.数据库名可以是满足以下条件的任意UTF-8字符串. 不能是空字符串(""). 不得含有' '(空格)...$./.\和\0 (空字符). 应全 ...

  5. 从零开始学习html(十)CSS格式化排版——下

    六.文字排版--删除线 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&q ...

  6. drupal7 获取profile2模块自定义字段的值

    $user=user_load($uid); $student=profile2_load_by_user($user,'student'); 这个函数官方有文档,通过用户对象返回用户的profile ...

  7. 问题处理:PROCESS一个domain节点起不来

    今早遇到一个问题,在看服务器列表时候,红框中的服务器是停机的,PSUNX4与该服务器是同一台机器,排除机器down掉的情况. 登陆服务器,在关闭psunx2节点时候,报错:can't attach t ...

  8. error LNK2001: 无法解析的外部符号 _H5T_NATIVE_DOUBLE_g

    最近在编译一个C++动态链接库时遇到一个奇怪的问题,我们基于GsTL实现了GIS地统计分析中的半变异函数分析以及 克吕格插值,GsTL在计算半变异函数时依赖HDF5库,当添加了HDF5的头文件.lib ...

  9. 腾讯Ocr文字识别

    简述 上篇文章记录了百度Ocr的两种模式用法,接下来这篇文章开始记录腾讯Ocr的使用方法.腾讯Ocr的通用印刷体识别模式使用比较简单,直接接入sdk即可,但手写体的识别相对比较麻烦,需要自己post表 ...

  10. dcloud资源升级方式更新app

    var wgtVer = null; plus.runtime.getProperty(plus.runtime.appid, function(inf) { wgtVer = inf.version ...