Docker的介绍和安装,管理虚拟机

直接在CentOS上安装Docker

第风流倜傥安装在此之前先卸载早前的旧版本:

$ sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-selinux 
                  docker-engine-selinux 
                  docker-engine

安装docker依赖包:

$ sudo yum install -y yum-utils 
  device-mapper-persistent-data 
  lvm2

增多docker源(纵然Docker官方下载的进程太慢也能够选用阿里的镜像源:

$ sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo

安装docker:

$ sudo yum install docker-ce

设置完直接开发银行docker就能够:

~]# systemctl start docker

使用docker version 可以看来大家设置docker的本子

~]# docker version 
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:20:16 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:23:58 2018
  OS/Arch:      linux/amd64
  Experimental: false

 

设置好 Vagrant 之后,就足以利用开始化 Box 了,你可以接纳外人封装好的 Box,也得以和煦封装 Box,譬喻上面忘乎所以:

Docker介绍

Docker是指容器化本事,用于扶助创制和实验Linux Container。依附Docker,你能够将容器充当重量轻、模块化的设想机来使用,同一时候,你还将获得可观的八面见光,进而完成对容器的相当的慢创造、安顿和复制,并能将其从四个条件顺遂迁移至其余叁个情形。

Docker官方网站:

Github Docker 源码:

基础特性

  • 故事C/S架构应用程序
  • 模块化
  • 层与镜像版本调控
  • 支撑回滚
  • 高速铺排

Docker的选择场景

  • Web 应用的自动化打包和揭橥。
  • 自动化测验和持续集成、公布。
  • 在服务型处境中计划和调节数据库或此外的后台应用。
  • 开头编写翻译可能扩充现成的OpenShift或Cloud Foundry平台来搭建自身的PaaS情状。

Docker根基架构图

图片 1

  • Docker 使用客商端-服务器 (C/S) 架构情势,使用远程API来治本和创办Docker容器
  • Docker 容器通过 Docker 镜像来创立
  • DOCKER_HOST:真正运维容器的主机
  • Containers:容器,独立运营的叁个或意气风发组采纳
  • Images:镜像,用于成立 Docker 容器的沙盘
  • Registry:镜像旅社

镜像image与容器Container区别

  • 镜像是静态的,不会运作
  • 容器则是动态的,有生命周期

Docker容器镜像站:

Docker object

  • image
  • containers
  • networks
  • volumes
  • plugins

噢,不是!另一个应用程序打包系统

当第叁遍读到 Docker 打包应用程序时,作者纳闷了。我们为什么供给再多贰个运用打包系统(packaging system卡塔 尔(英语:State of Qatar)?小编早就经把自个儿的 Java 程序打包成 JATiguan 或 WARubicon了。在花了些时日读书了有关 Docker 的素材后,小编清楚了 Docker 应用包(application package卡塔尔的意义。Docker 就是设想机和您的像 WA福特Explorer 或 JARAV4那样的应用包之间的桥梁。一方面来讲,设想机是卓殊重量级的(功耗源卡塔尔国,因为移植时要附带些不要求的东西。其他方面来讲,应用代码包(the application code packages卡塔尔是十三分的轻量的,并未附带丰盛可靠地运营起来的消息。Docker 很好地平衡了这两位置。

在 Docker 中,应用程序包(application package)意味着一个含有了应用程序代码和所需配置遭逢的包。比方,在 Java 中我们常常把大家的 Web 应用程序打包在三个 WA大切诺基 文件中。那么些 WA奥迪Q5文件是三个极度简单的软件包,它只是富含了应用程序的代码。但应用程序须求一定铺排的条件去高效地运行起来。偶尔候安插的意况和付出时的条件是莫衷一是的。举例开拓者使用 Java 7 开荒顺序,但配备时的条件是在 OpenJDK Java 6 中;又只怕是在 Mac 上付出的,但在 TiggoHEL 上布署。意况也是有不小希望是:有局地系统库(system libraries卡塔尔在支付遭逢和模仿条件(staging environment)中,在差别的应用程序上有分歧的作用。Docker 通过不仅打包应用程序,也卷入应用程序的依赖情形来解决那几个标题。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default: 
    default: Guest Additions Version: 4.2.0
    default: VirtualBox Version: 5.1
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => /Users/xishuai/vagrant_project/works
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

Docker的安装

 

以此命令就代表早就跻身了 Ubuntu 的种类,能够像在设想机中运用相符使用它了。

采用Vagrant + Virtual Box赶快搭建Docker景况

Vagrant介绍
Vagrant是三个基于Ruby的工具,用于成立和陈设虚构化开拓景况。它 使用Oracle的开源Virtual博克斯设想化系统,使用 Chef成立自动化虚构意况。大家能够动用它来干如下这么些事:

  • 创设和删除设想机
  • 配置设想机械运输转参数
  • 管制虚构机械运输生势况
  • 电动配置和设置开拓情形
  • 包装和散发虚构机械运输转条件

Vagrant的周转,需要依靠某项具体的设想化手艺,最分布的有Virtual博克斯以致VMWare七款,开始的大器晚成段时期,Vagrant只帮衬VirtualBox,后来才步入了VMWare的补助。

Vagrant安装和行使

Vagrant是依照其余设想化付加物来创设虚构机的,这里大家选拔开源成品Virtual Box,大家先安装Virtual Box和Vagrant:

  • Virtual 博克斯下载地址:
  • Vagrant下载地址:

下载好之后先利用vagrant init centos/7浮动暗中同意的Vagrntfile,然后使用vagrant up就可以自动创制设想机,我们为了布署Docker境遇需求更换下Vagrantfile,在开创设想机的时候自动安装docker遇到(配置config.vm.provision "shell"选用卡塔 尔(英语:State of Qatar)况兼根据本人的须要布置设想机的框框和网络。

本身的Vagrantfile配置如下

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.require_version ">= 1.6.0"

boxes = [
    {
        :name => "docker-1",
    :eth1 => "172.16.56.11",
        :mem => "1024",
        :cpu => "1"
    }
]

Vagrant.configure(2) do |config|

  config.vm.box = "centos/7"
  boxes.each do |opts|
    config.vm.define opts[:name] do |config|
      config.vm.hostname = opts[:name]
      config.vm.provider "vmware_fusion" do |v|
        v.vmx["memsize"] = opts[:mem]
        v.vmx["numvcpus"] = opts[:cpu]
      end
      config.vm.provider "virtualbox" do |v|
        v.customize ["modifyvm", :id, "--memory", opts[:mem]]
        v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
      end
      config.vm.network :public_network, ip: opts[:eth1]
    end
  end

#  config.vm.synced_folder "../sync", "/home/vagrant/sync"

  config.vm.provision "shell", inline: <<-SHELL
      yum -y install wget
      wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      yum makecache
      yum install -y yum-utils device-mapper-persistent-data lvm2
      yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      yum makecache fast
      yum -y install docker-ce
      sudo systemctl start docker
  SHELL
end

事后选拔vagrant up创建刻可

λ vagrant up
Bringing machine 'docker-1' up with 'virtualbox' provider...
==> docker-1: Importing base box 'centos/7'...

 [KProgress: 20%
 [KProgress: 40%
 [KProgress: 90%
 [K==> docker-1: Matching MAC address for NAT networking...
==> docker-1: Checking if box 'centos/7' is up to date...
==> docker-1: Setting the name of the VM: docker-1_docker-1_1534247086153_83300
==> docker-1: Clearing any previously set network interfaces...
==> docker-1: Preparing network interfaces based on configuration...
    docker-1: Adapter 1: nat
    docker-1: Adapter 2: bridged
==> docker-1: Forwarding ports...
    docker-1: 22 (guest) => 2222 (host) (adapter 1)
==> docker-1: Running 'pre-boot' VM customizations...
==> docker-1: Booting VM...
==> docker-1: Waiting for machine to boot. This may take a few minutes...
    docker-1: SSH address: 127.0.0.1:2222
    docker-1: SSH username: vagrant
    docker-1: SSH auth method: private key
    docker-1: 
    docker-1: Vagrant insecure key detected. Vagrant will automatically replace
    docker-1: this with a newly generated keypair for better security.
    docker-1: 
    docker-1: Inserting generated public key within guest...
==> docker-1: Machine booted and ready!
==> docker-1: Checking for guest additions in VM...

...

在这里个进程中Vagrant会帮大家创造好风流罗曼蒂克台Centos 7的虚构机并设置好Docker情状,使用vagrant ssh向来登入设想机

λ vagrant ssh
Last login: Wed Aug 15 15:54:32 2018 from 10.0.2.2
[vagrant@docker-1 ~]$ sudo docker version
Client:
 Version:           18.06.0-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        0ffa825
 Built:             Wed Jul 18 19:08:18 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.0-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       0ffa825
  Built:            Wed Jul 18 19:10:42 2018
  OS/Arch:          linux/amd64
  Experimental:     false
[vagrant@docker-1 ~]$

Vagrantfile中有大器晚成项config.vm.synced_folder能够安插本三步跳件夹同步到设想机,挂载当羊眼半夏件夹到虚构机中需求V博克斯Additions的支撑,这么些能够在虚构机起来现在在安装,也能够参照vagrant-vbguest以此插件的行使,这一个意义相比较切合开垦职员,能够在地头编写代码而在Linux情况中调和代码运营。

Docker和vagrant都是多年来才起来通晓学习的,有哪些错误大概不对的地点还请我们指正,有怎么样不懂的也得以合营沟通。

本身何以要爱惜这几个?

Docker 之所以有用,是因为把代码从三个机械迁移到另叁个机器经常是困难的。它尝试去使得软件迁移的进度变得更其可信赖和自动化。Docker 容器能够移植到具有帮助运营 Docker 的操作系统上。

能够看那篇文章精晓越来越多:how the Fedora Project is embracing Docker

boot_timeout是链接超时设置(20 秒卡塔尔,bridge前面表示桥接的互连网情势(WiFi 网络卡塔 尔(阿拉伯语:قطر‎,假若不开展安装的话,每一回运行虚构机的时候,会开展接受互连网格局:

它就像 Vagrant 一样吗?

小编遇见的一个疑团是,小编应当用 Vagrant 依旧 Docker 去为自个儿的下二个门类开创沙箱碰着?答案每每回是相像的。

Docker 比起 Vagrant 来讲,运转起来会特别省能源。Vagrant 提供的情况其实是依照 Virtual Box 提供的设想机。能够翻阅 Stackoverflow 的以此回答问询更多。

增加后事后,可以查阅所拉长的 Box 列表:

      此外,美团网技能团队的Docker连串之黄金时代:入门介绍 也不错。

伊始化达成后,会在当前目录下生成贰个 VagrantFile 配置文件,里面是对虚构机情状的意气风发部布满局(能够手动改善卡塔 尔(英语:State of Qatar),然后运转设想机:

可是作者早已在应用设想机(VMs卡塔尔了

到现行反革命得了,要把程序可信赖地移植的唯后生可畏选用是设想机(Virtual Machines,VMs卡塔尔。设想机以后曾经很广阔了,但虚构机是非常低等,它提供的是总体的操作系统意况。设想机的主题素材是,迁移的时候太大了。它们饱含了大气像样硬件驱动、设想微处理器、网络接口等等并无需的音信。 虚构机也要求相比较长日子的启航,同期也会消耗多量的内部存款和储蓄器、CPU 能源。

Docker 比较起来就丰盛轻量级了。运营起来就和多少个好端端程序大约。这些容器不仅运维快,创造三个镜像和创制文件系统快照也比较快。它能够在 EC2, RackSpace VMs 那样的虚构情况中运作。事实上,在 Mac 和 Windows 系统上应用 Docker 的更加好点子是利用 Vagrant。Docker 的初志其实是发布相仿VM 的作用,但它运维得更加快和内需越来越少的能源。

更多 Vagrant 概念,参考:Vagrant 是何许,不是何许。

add by zhj:

下载好 Box 之后,你能够创建那样的行事目录:

什么是 Docker?

Docker 提供了三个能够运营你的应用程序的封套(envelope),恐怕说容器。它原先是 dotCloud 运转的多少个业余项目,并在前些时候开源了。它引发了大气的好感和座谈,引致dotCloud 把它重命名到 Docker Inc。它最先是用 Go 语言编写的,它就也正是是加在 LXC(LinuX Containers,linux 容器卡塔 尔(英语:State of Qatar)上的管道,允许开辟者在更加高档次的定义上中国人民解放军海军事工业程大学业作。

Docker 扩充了 Linux 容器(Linux Containers卡塔尔,或着说 LXC,通过二个高档次的 API 为经过单独提供了贰个轻量级的虚构遭逢。Docker 利用了 LXC, cgroups 和 Linux 自个儿的基本。和价值观的虚构机差别的是,三个Docker 容器并不含有二个独门的操作系统,而是基于原来就有的底蕴设备中操作系统提供的效果与利益来运行的。这里有五个 Stackoverflow 的答案,里面非常详尽清楚地汇报了有着 Docker 差别于纯粹的 LXC 的功用特色

Docker 会像二个可移植的器皿引擎那样行事。它把应用程序及具有程序的依赖景况打包到三个伪造容器中,这一个设想容器能够运作在别的豆蔻梢头种 Linux 服务器上。那大大地增加了程序运营的油滑和可移植性,无论需无需许可、是在公共云照旧私密云、是还是不是裸机情形等等。

Docker 由上边那一个组合:

  1. Docker 服务器守护程序(server daemon卡塔 尔(阿拉伯语:قطر‎,用于管理全部的容器。
  2. Docker 命令行顾客端,用于控克制务器守护程序。
  3. Docker 镜像:查找和浏览 docker 容器镜像。它也拜谒这里得到:

接下来把下载好的 Box 放到 boxes 文件夹下,然后命令转到 boxes 目录下(cd boxes卡塔尔,然后施行增加 Box 命令:

      能够总结的感到docker是对LXC(Linux Container卡塔尔国封装,它提供大器晚成种比LXC高端的API。Docker使用Go语言开垦,利用了Linux提供的LXC,AUFS,namespace和cgroup本事。达成了文件系统,财富和网络的隔绝,最后指标是兑现形似PaaS平台的施用隔断。最大的优势在于相比较重量级虚构机如KVM、Xen、VMWare、VirtualBox来说运行快,占有财富小,迁移也不行便利。docker近些日子只运营在Linux上,不过那个Linux可以是地方说的分量级设想机,也得以是直接基于裸机的Linux。按docker公司高等软件工程师杰罗姆 Petazzoni的说教:“重量级” 的虚构化饱含KVM、Xen、VMWare、VirtualBox以致别的的虚构化系统。“轻量级”指的正是OpenVZ、VServer、(LXC)containers,zones等等。笔者感觉,“重量级”的设想化推动IaaS(便是我们平常说道的“云”卡塔尔国的前行,而“轻量级“虚构化则有利于PaaS的蜕变,这个有利更平淡无奇地张开“云”布署。docker使用意况参见:多个Docker的安分守己应用项景 和 Docker 的施用处景在哪儿?

由于事先的 Ubuntu 版本太低(12.04卡塔 尔(英语:State of Qatar),安装 .NET Core 的时候,境遇了部分难点,后来又换了叁个 Ubuntu Box(版本 14.04卡塔 尔(英语:State of Qatar),但配备的时候,又蒙受了下边难题:

多少个月早前,红帽(Red Hat卡塔尔国发表了在 Docker 手艺上和 dotCloud 建立合营关系。在这里个时候,笔者并龙时间去学习有关 Docker 的学问,所以在后天,趁着这么些 30 天的挑衅,笔者说了算去学学一下 Docker 毕竟是怎么样的。那篇博文并不是说过后怎么在 OpenShift 上用 Docker 的。请阅读由 Mike McGrath 撰写的 "至于 OpenShift 和 Docker 的本领思谋"。也得以看看这些 Stackoverflow 的问题,明白一下 Docker 和 OpenShift 的差距。

$ vagrant box add ubuntu precise64.box

发端应用 Docker

在 Fedora 机器上选用那篇博文中的指令安装 Docker

$ vagrant up
$ vagrant ssh

接下来安装 Docker Fedora 镜像:

$ sudo docker pull mattdm/fedora

地点的命令会从  上下载 Docker Fedora 镜像。
设置了 Docker Fedora 镜像后,我们能够使用下边发号布令列出全部的镜像:

$ sudo docker images

REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
shekhargulati/node_image_007   latest              e12b3054d981        50 minutes ago      470.3 MB (virtual 601.8 MB)

mattdm/fedora                         12.04               8dbd9e392a96        7 months ago        131.5 MB (virtual 131.5 MB)

上边列表中率先个镜像正是自笔者原先创立的。它打包了 NodeJS 及 Express Fremework。第三个镜像便是积存的 Docker Fedora 镜像了。

今日,大家在 Docker 容器内运营叁个剧本:

$ sudo docker run -t -i -p 3000 mattdm/fedora /bin/bash

在运营完上边的授命后,大家就在 Docker 的器皿里面了。我们得以由此 ls 命令列出具有的命令。

现行反革命大家创立上面的目录结构 /home/shekhar/dev

$ mkdir -p home/shekhar/dev
$ cd home/shekhar/dev

当今,笔者会安装 NodeJS。运营下边包车型客车命令去在 Fedora Docker 镜像上安装 Node:

$ sudo yum install npm

随之,我们设置 Express 框架:

$ npm install express -g

Express 框架安装后,我们创立三个新的 Express 程序,然后运行它:

$ express myapp
$ cd myapp
$ npm install
$ node app.js

地点会在 3000 端口运维 NodeJS Express 程序。

现行反革命开垦另一个命令行标签,列出富有的 Docker 进度:

$ sudo docker ps
CONTAINER ID        IMAGE                                 COMMAND             CREATED             STATUS              PORTS                     NAMES
4a5715a915e5        mattdm/fedora   /bin/bash           5 minutes ago       Up 5 minutes        0.0.0.0:49157->3000/tcp   red_duck

您会潜心到,3000 端口和本机上的 49157 绑定了。你能够经过上面所示的 curl 命令测量检验Express 应用:

$ curl 0.0.0.0:49157
<!DOCTYPE html><html><head><title>Express</title><link rel="stylesheet" href="/stylesheets/style.css"></head><body><h1>Express</h1><p>Welcome to Express</p></body></html>

于今 commit 镜像,然后 push 到 Docker 镜像注册表(registry卡塔尔。在你做那步事先,你不得不透过 去注册一个Docker 注册表。

$ sudo docker commit 4a5715a915e5 shekhargulati/node_image_007
$ sudo docker push shekhargulati/node_image_007

请使用你协调的顾客名和镜像名。

故此,小编的率先个镜像已经上传到 Docker 注册表上边了: 

你能够使用 pull 命令下载那么些镜像:

$ docker pull shekhargulati/node_image_007

那便是今日的内容。保持反馈!


原文:Day 21: Docker--The Missing Tutorial
翻译收拾:Segmentfault

 

参谋资料:

图片 2

ubuntu/trusty64是一个理解 Boxes(更多 Boxes卡塔 尔(阿拉伯语:قطر‎。运转方面第生机勃勃行命令后,Vagrant 会在做事目录下创办 Vagrantfile 配置文件。在线下载 Box会相当的慢,你能够先下载 博克斯 之后,再加载本地的 博克斯 举行开头化。

$ vagrant init ubuntu64

虚构机运维好之后(可以在 VirtualBox中查阅是或不是已开发银行卡塔 尔(英语:State of Qatar),就足以登录设想机了:

$ vagrant plugin install vagrant-vbguest

创办命令:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Specific bridge 'en1: Wi-Fi (AirPort)' not found. You may be asked to specify
==> default: which network to bridge to.
==> default: Available bridged network interfaces:
1) en0: Wi-Fi (AirPort)
2) en1: Thunderbolt 1
3) en2: Thunderbolt 2
4) p2p0
5) awdl0
6) bridge0
7) vmnet1
8) vmnet8
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
    default: Which interface should the network bridge to?     

Vagrant 支撑 VirtualBox、HyperV、VMWare 等虚构机软件,小编 Mac 计算机装的是 VMWare Fusion,但 Vagrant 扶持是收取费用的(79 澳元卡塔 尔(阿拉伯语:قطر‎,好黑啊,但是VirtualBox 是免费的,俺又安装了个 VirtualBox(大致 300 M卡塔尔,以便做示例。

在应用 Vagrant 的时候,蒙受了这么二个标题:创造的 Ubuntu 虚构机,需求会见外界互连网,所以供给将虚构机的互联网情势设置为桥接格局(Bridged卡塔尔国,于是就应用 Virtual博克斯 实行设置,但设置成功未来,每一次 Vagrant 运营虚构机的时候,都交易会开互连网情势重新初始化,但假设用 VirtualBox运行以来,就从未有过什么难题。

$ vagrant init ubuntu_server1
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
xishuaideMacBook-Pro:ubuntu_server1 xishuai$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu_server1'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: ubuntu_server1_default_1482924693668_66404
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default: 
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
==> default: Mounting shared folders...
    default: /vagrant => /Users/xishuai/vagrant_project/ubuntu_server1
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

The error output from the command was:

mount: unknown filesystem type 'vboxsf'
  • command &:将经过放在后台推行
  • ctrl + z:暂停当前历程 并放入后台
  • jobs:查看当前后台任务
  • bg( %id):将职务转为后台实施
  • fg( %id):将职责调回前台
  • kill( %id):杀掉任务

安装 Vagrant(使用 homebrew)

图片 3

别的,附一些 Linux 常用命令:

$ brew install vagrant

当然也能够把您配好的 Box 导出出来,给其余人使用,施行命令:

自家利用的是 Ubuntu 64 Box:,别的 Box下载地址:

$ vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)

 * Documentation:  https://help.ubuntu.com/
New release '14.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Welcome to your Vagrant-built virtual machine.
Last login: Tue Dec 27 10:16:06 2016 from 10.0.2.2
vagrant@precise64:~$ 
$ tree
.
├── boxes
│   └── precise64.box
└── works

2 directories, 1 files
  • vagrant box list:查看box列表
  • vagrant add box box 名字 box地址:加多box,自动帮您生成 Vagrantfile
  • vagrant init box 名字:初始化 Vagrantfile
  • vagrant up:运行设想机
  • vagrant ssh:连接虚构机
  • vagrant halt:关闭设想机
  • vagrant reload:重新加载 Vagrantfile 文件
  • vagrant suspend:暂且挂起设想机
  • vagrant destroy:销毁设想机
  • vagrant status:查看虚构机械运输营处境
  • vagrant package:导出 Box
$ mkdir vagrant_projects
$ mkdir boxes
$ mkdir works

解决方案(参照他事他说加以调查 Vagrant error : Failed to mount folders in Linux guest):

$ cd ~/VirtualBox VMs/works_default_1482820841651_93029
$ vagrant package  --output works_default_1482820841651_93029 --base ubuntu64.box

接受 Vagrant 的指标,就是惠及在设想机中做 Consul 的集群(Mac OS、Ubuntu 安装及使用 Consul)。

Vagrant 命令列表:

config.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)"
config.vm.boot_timeout = 20
$ vagrant box list
ubuntu64 (virtualbox, 0)
  • Vagrant 安装配备
  • 用 Vagrant 管理虚构机
  • 迅猛创造跨平台开辟蒙受 vagrant + virtualbox + box
  • 初步使用 Vagrant
  • windows 下 使用 vagrant 来治本 linux 虚机开采条件
  • Vagrant PUBLIC NETWORKS

一声令下转到 works 目录下(cd works卡塔尔国接着进行开头化设想机:

这一个标题搞了长久,最终的缓和方案是改进 Vagrantfile 配置文件,加多如下配置:

Vagrant(官网、github卡塔 尔(阿拉伯语:قطر‎是生龙活虎款营造设想支付境况的工具,帮忙Window,Linux,Mac OS,Vagrant 中的 Boxes 概念相符于 Docker(实质是例外的卡塔尔国,你能够把它看成是贰个箱子,里面装了生龙活虎部分事物,Vagrant 创建虚构机的时候,须求用到 Box,它里面包罗了设想机配置、设想机硬盘镜像和 Vagrant 配备的压缩包,有了 博克斯,你无需再另行下载 ISO 镜像文件、新建虚构机、改革设想机等配置,而是直接运转你所须要的操作系统。

$ vagrant box add ubuntu/trusty64

本文由澳门威斯尼人平台登录发布于 操作系统,转载请注明出处:Docker的介绍和安装,管理虚拟机

相关阅读