亚搏app官方网站Docker是指容器化技术
Tagged Tags:

Docker介绍

Docker是指容器化本领,用于援救创设和实验Linux
Container。借助Docker,你能够将容器当做重量轻、模块化的虚拟机来利用,同不时候,你还将得到惊人的灵活性,从而达成对容器的迅猛创设、布署和复制,并能将其从三个情状顺遂迁移至此外二个处境。

Docker官方网站:

Github Docker 源码:

基本功特性

  • 听新闻说C/S架构应用程序
  • 模块化
  • 层与镜像版本调控
  • 帮助回滚
  • 登时安插

Docker的应用场景

  • Web 应用的自动化打包和公布。
  • 自动化测验和相连集成、发布。
  • 在服务型意况中布署和调动数据库或别的的后台应用。
  • 千帆竞发编译只怕扩张现成的OpenShift或Cloud
    Foundry平台来搭建本人的PaaS碰到。

Docker基础架构图

亚搏app官方网站 1

  • Docker 使用客户端-服务器 (C/S)
    架构情势,使用远程API来管理和创办Docker容器
  • Docker 容器通过 Docker 镜像来制造
  • DOCKER_HOST:真正运维容器的主机
  • Containers:容器,独立运作的三个或一组利用
  • Images:镜像,用于创建 Docker 容器的模版
  • Registry:镜像旅馆

镜像image与容器Container区别

  • 镜疑似静态的,不会运转
  • 容器则是动态的,有生命周期

亚搏app官方网站Docker是指容器化技术。Docker容器镜像站:

Docker object

  • image
  • containers
  • networks
  • volumes
  • 亚搏app官方网站Docker是指容器化技术。plugins

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官方下载的速度太慢也得以利用Ali的镜像源:

$ 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 + Virtual Box火速搭建Docker情状

亚搏app官方网站Docker是指容器化技术。Vagrant介绍
Vagrant是三个基于Ruby的工具,用于创立和配置设想化开荒境遇。它
使用Oracle的开源VirtualBox设想化系统,使用
Chef创设自动化设想意况。我们得以采纳它来干如下这个事:

  • 树立和删除设想机
  • 配备虚拟机运营参数
  • 管住虚构机械运输转意况
  • 电动配置和设置开垦意况
  • 装进和散发设想机械运输维境遇

Vagrant的运作,须要借助某项具体的虚构化本领,最常见的有VirtualBox以及VMWare五款,开始的一段时代,Vagrant只协理VirtualBox,后来才加入了VMWare的支撑。

Vagrant安装和选取

Vagrant是依赖其他设想化产品来创建虚构机的,这里大家选择开源产品Virtual
Box,我们先安装Virtual 博克斯和Vagrant:

  • Virtual Box下载地址:
  • Vagrant下载地址:

下载好以往先采取vagrant init centos/7变化暗许的Vagrntfile,然后选择vagrant up就可以自行成立虚构机,大家为了布署Docker意况需求改动下Vagrantfile,在创立设想机的时候自动安装docker碰着(配置config.vm.provision "shell"分选)并且依照本身的须要安顿设想机的局面和网络。

自己的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能够布置当麻芋果件夹同步到虚构机,挂载当半夏件夹到设想机中要求VBoxAdditions的匡助,这几个能够在虚构机起来然后在设置,也能够参见vagrant-vbguest本条插件的选择,那几个效应相比较符合开垦职员,能够在地面编写代码而在Linux境况中调弄整理代码运转。

Docker和vagrant都是近日才起来了解学习的,有啥样错误或许不对的地点还请大家指正,有如何不懂的也足以共同沟通。

发表评论

电子邮件地址不会被公开。 必填项已用*标注