一步步创建第一个Docker App —— 2. 创建 Docker化 主机

原文:https://docs.docker.com/engine/getstarted-voting-app/node-setup/

部署voting app的第一步,是为集群节点(swarm nodes)创建 Docker machines。我们可以在不同的实体PC、虚拟机或者云服务器上创建这些 Docker化 的主机。

在本例中,我们使用Docker Machine来创建两个虚拟机(virtual machines)在同一个系统上(See Docker Machine Overview to learn more.)。

创建 manager 和 worker 虚拟机

使用 docker machine 创建一个本地的 virtual machine

docker-machine create --driver hyperv <HOSTNAME>

这里使用的是 windows 里的 hyperv 创建的虚拟机



创建过程中出现一个

Error creating machine: Error in driver during machine creation: exit status 1

解决方案:

  • 按照链接https://docs.docker.com/machine/drivers/hyper-v/的说明,配置系统。
  • 首先在Hyperv管理工具里面,创建一个新的虚拟交换机,并使用外部链接(如果不指定,默认链接到系统的DockerNAT上,它是在docker安装时候创建的,用于 docker for windows 的,不是给我们使用的)
  • 然后将创建的新虚拟机,主动链接到该交换机上
  • 重启
  • 注意: 360安全卫士可能导致失败,出现IP无法获得的情况

下面是一个创建的例子:

PS C:\WINDOWS\system32>  docker-machine create -d hyperv --hyperv-virtual-switch "Primary Virtual Switch" --hyperv-disk-size "5000" --hyperv-memory "512" manager

Running pre-create checks...

Creating machine...

(manager1) Copying C:\Users\Vicky\.docker\machine\cache\boot2docker.iso to C:\Users\Vicky\.docker\machine\machines\manag

er1\boot2docker.iso...

(manager1) Creating SSH key...

(manager1) Creating VM...

(manager1) Using switch "Primary Virtual Switch"

(manager1) Creating VHD

(manager1) Starting VM...

(manager1) Waiting for host to start...

Waiting for machine to be running, this may take a few minutes...

Detecting operating system of created instance...

Waiting for SSH to be available...

Detecting the provisioner...

Provisioning with boot2docker...

Copying certs to the local machine directory...

Copying certs to the remote machine...

Setting Docker configuration on the remote daemon...

Checking connection to Docker...

Docker is up and running!

To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: C:\Program Files\Doc

ker\Docker\Resources\bin\docker-machine.exe env manager1

PS C:\WINDOWS\system32>

验证虚拟机的IP地址

使用命令 docker-machine ls 来验证。

PS C:\Users\Administrator> docker-machine ls

NAME      ACTIVE   DRIVER   STATE     URL                       SWARM   DOCKER    ERRORS

manager   -        hyperv   Running   tcp://192.168.0.9:2376            v1.13.1

worker    -        hyperv   Running   tcp://192.168.0.10:2376           v1.13.1

这样就有了 两个 docker化 的虚拟机,每一个都独自运行一个 Docker Engine。可以通过 Docker CLI 通信,并且可以配置为集群节点(Swarm nodes)。

与虚拟机交互

下面讲述两种与创建的虚拟机交互的方式:

通过pre-configured shell来管理虚拟机

我们可以使用 docker-machine 命令,在shell中设置虚拟机的环境变量。这样,我们在本地shell上的 Docker 命令,就会在对应的虚拟机上运行。

1. 运行 docker-machine env manager 命令,获得环境变量

PS C:\Users\Administrator> docker-machine env manager

$Env:DOCKER_TLS_VERIFY = "1"

$Env:DOCKER_HOST = "tcp://192.168.0.9:2376"

$Env:DOCKER_CERT_PATH = "C:\Users\Administrator\.docker\machine\machines\manager"

$Env:DOCKER_MACHINE_NAME = "manager"

$Env:COMPOSE_CONVERT_WINDOWS_PATHS = "true"

# Run this command to configure your shell:

# & "C:\Program Files\Docker\Docker\Resources\bin\docker-machine.exe" env manager | Invoke-Expression

2. 使用最后一行的命令

& "C:\Program Files\Docker\Docker\Resources\bin\docker-machine.exe" env manager | Invoke-Expression

将shell连接到 manager 虚拟机。

3。 再次运行 docker-machine ls 命令:

PS C:\Users\Administrator> docker-machine ls

NAME      ACTIVE   DRIVER   STATE     URL                       SWARM   DOCKER    ERRORS

manager   *        hyperv   Running   tcp://192.168.0.9:2376            v1.13.1

worker    -        hyperv   Running   tcp://192.168.0.10:2376           v1.13.1

可以发现,manager后面出现一个星号,表示的当前,shell已经连接到了 manager 虚拟机。这样,在shell中运行的命令,将会在 manager 虚拟机上执行。(可以用同样的方法,连接到 worker 虚拟机,一个shell可以同时连接多个虚拟机进行操作)

使用 ssh 登录虚拟机

可以使用命令 docker-machine ssh <MACHINE-NAME> 来登录到某台虚拟机上.

PS C:\Users\Administrator> docker-machine ssh manager

                        ##         .

                  ## ## ##        ==

               ## ## ## ## ##    ===

           /"""""""""""""""""\___/ ===

      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~

           \______ o           __/

             \    \         __/

              \____\_______/

 _                 _   ____     _            _

| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __

‘_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ ‘__|

| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |

|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|

Boot2Docker version 1.13.1, build HEAD : b7f6033 - Wed Feb  8 20:31:48 UTC 2017

Docker version 1.13.1, build 092cba3

[email protected]:~$

What’s next?

我们将会用这两个 Docker machines创建一个集群(swarm)。

null

时间: 2024-10-09 23:25:48

一步步创建第一个Docker App —— 2. 创建 Docker化 主机的相关文章

使用Cordova创建第一个App和Cordova构建环境的配置

引言 通过上一篇文章我们已经对 Hybrid App 有了一定的了解,并且根据实际业务情况选择了 Cordova 来开发我们的APP, 如果对这些还不了解的话请查看上一篇文章,那么接下来我们就开始Cordova 之旅把! 安装Cordova CLI 由于Cordova命令行工具作为npm包发布,这对于我们前端开发的同学来说实在是太方便了! #全局安装Cordova $ npm install -g cordova 注 :对于在OS X和Linux上, npm命令前加sudo 是因为 cordov

rapidPHP 1.1.0 - 创建第一个app

创建controller 在application/目录下创建controller目录,然后接着在controller目录下创建BaseController,继承Controller //注:BaseController作用是全局controller公用方法库 文件名:BaseController.class.php <?php namespace application\controller; use rapid\core\Controller; use rapid\library\rapid

django (三) 第一个django app 创建model

经过上一章,我们已经创建好一个django app了,接下来,我们开始完善它. 首先,我们先了解些基本概念. Django中创建的每个应用程序都是由Python的包组成,遵循某些约定.Django配有一个实用程序,自动生成一个应用程序的基本目录结构,所以您可以专注于编写代码,而不是创建目录. 那么项目和应用程序到底有什么区别呢? 一个app是一个web应用:比如一个博客系统,一个简单的投票系统.而一个项目是一个集合的配置和应用程序特定的Web站点.一个项目可以包含多个应用程序.应用程序可以存在于

一步步创建第一个Docker App —— 1. 背景介绍

原文:https://docs.docker.com/engine/getstarted-voting-app/#/docker-stacks-and-services 你将会学习什么 本文创建了一个基于web的投票voting应用,会收集,匹配,并返回投票结果(你选择的是cats,dogs还是其他).这个投票app包括多个服务,每个都在独自的container容器中运行. 我们会将app部署为一个stack,从而介绍一些在Compose Version 3中的新概念,并且使用swarm mod

第一个Polymer应用 - (1)创建APP结构

原文链接: Step 1: Creating the app structure翻译日期: 2014年7月5日翻译人员: 铁锚 在本节中,将使用一些预先构建好的Polymer元素来创建基本的应用程序结构,包括一个工具栏(toolbar)和一些选项卡(tabs). 编辑 index.html 文件进入根目录下面的 starter 目录中, 使用你喜欢的文本编辑器打开 index.html 文件, 文件的初始内容大致如下所示: <!doctype html> <html> <he

Docker实战之创建一个tomcat容器

一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64) 64位操作系统 建议内核在 3.8 以上,执行uname –r 查看内核如下图所示 2.2:更新系统 Ubuntu在安装的过程中没有指定root用户密码的操作,所以我们需要给root用户一个密码 命令如下 sudo passwd 系统会提示Enter New UNIX OR LINU

Sencha学习笔记4: Creating your First App - 官方创建您的第一个Sencha Touch应用指导

英文原文地址:http://docs.sencha.com/touch/2.3.1/#!/guide/first_app (天地会珠海分舵声明:本翻译文章建议读者参照英文原文进行阅读,因为原文包含了实时代码编辑和预览的功能,这在csdn是不能做到的,所以下面只是提供了相应的截图,而非真实的演示) Required Software 软件需求 请参考<Sencha学习笔记1: Getting Started with Sencha Touch - 官方Sencha Touch入门指南> Crea

创建一个支持 sshd 服务的 docker 镜像

前言 当我们运行容器后,第一件会想到的事情,就是如何连接容器.一般来说,连接容器的方式大概有四种.分别是attach.exec.ssh 和 nsenter. attach 和 exec 都是 docker 自带的命令,不需要做任何配置. 这篇文章,主要尝试配置一个实现 sshd 服务的镜像.并用这个镜像生成容器,然后验证 ssh 登录的功能. 操作过程 环境说明 宿主机 : ubunt:16.04 用 Dockerfile 文件建立一个镜像 hell[email protected]:~/mys

2、编写第一个django app

1.创建project django-admin startproject mysite 输入以上命令后, 在当前目录下生成 mysite 目录 和 相应文件: [[email protected] django]# tree . . └── mysite 项目容器, django 不关注, 可随意命名 ├── manage.py 一种命令行工具,允许你以多种方式与该 Django 项目进行交互,可用 python manage.py help 查看使用方式 └── mysite 项目的pyth