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

时间:2022-02-12 01:55:25

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

其他的之后使用到再添加