Dokcer入门与安装

一、Docker介绍

Docker 是基于 Go 语言实现的开源应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

1. Docker特征

更快速的交付和部署

使用 Docker ,开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用完全相同的环境来部署代码,只要是开发测试过的代码,就可以确保在生产环境无缝运行 Docker 可以快速创建和删除容器,实现快速迭代,节约开发、测试、部署的大量时间。

更高效的资源利用

运行 Docker 容器不需要额外的虚拟化管理程序(Virtual Machine Managr,VMM,以及 Hypervisor)的支持, Docker 是内核级的虚拟化,可以实现更高的性能,同时对资源的额外需求很低与传统虚拟机方式相比, Docker 的性能要提高1-2个数量级。(注意普通windows系统下Docker架构还是增加了一层VM虚拟机)

更轻松的迁移和扩展

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等,同时支持主流的操作系统发行版本这种兼容性让用户可以在不同平台之间轻松地迁移应用。

更简单的更新管理

使用 Dockerfile ,只需要小小的配置修改,就可以替代以往大量的更新工作。所有修改都以增量的方式被分发和更新,从而实现自动化并且高效的容器管理。

2.Docker与虚拟机比较

虚拟机允许我们在一台物理计算机模拟出多台机器,简单地理解,虚拟化技术就是在一台物理计算机上,通过中间虚拟软件层Hypervisor隔离CPU、内存等硬件资源,虚拟出多台虚拟服务器。

Dokcer其技术核心是Linux内核的Cgroup,Namespace和AUFS类的Union FS等技术,这些技术都是Linux内核中早已存在很多年的技术,所以严格来说并不是一个完全创新的技术,Docker通过这些底层的Linux技术,对Linux进程进行封装隔离,而被隔离的进程也被称为容器,完全独立于宿主机的进程。所以Docker是容器技术的一种实现,也是操作系统层面的一种虚拟化,与虚拟机的通过一套硬件再安装操作系统完全不同。

从更高层面上来讲,Hypervisor 是硬件虚拟化(Hardware Virtualization)——Hypervisor 将硬件物理资源划分为虚拟资源。

容器是操作系统虚拟化(OS Virtualization)——容器将系统资源划分为虚拟资源。

容器与虚拟机性能的比较

 

3.Docker核心概念

镜像(Image)

Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。

例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了 Apache 应用程序(或用户需要的其他软件) 可以把它称为一个 Apache 镜像。

 

容器(Container)

Docker 容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例,它可以启动、开始、停止 删除,而这些容器都是彼此相互隔离、互不可见的。

可以把容器看作一个简易版的 Linux 系统环境(包括 root 用户权限、进程空间、用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子。

从开发员角度,则可以将镜像理解为类(Class),将容器理解未类创建的对象。

仓库(Repository)

Docker 仓库类似于代码仓库,是 Docker 集中存放镜像文件的场所。有时候我们会将 Docker 仓库和仓库注册服务器( Register)混为一谈,并不严格区分。实际上,仓库注册服务器是存放仓库的地方,其上往往存放着多个仓库 每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签( tag )来进行区分。

数据挂载

Docker给我们提供了一种容器卷技术,就是把容器内的目录文件挂载到本地,可以理解为是一种映射关系。这样软件与数据分离,即使软件出了问题,也不会造成数据的丢失。

数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除

二、安装Docker容器

1.Ubuntu 系统

安装docker 方式一:Docker仓库

官方安装教程https://docs.docker.com/engine/install/ubuntu/

(1)由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:

$ sudo apt-get remove docker docker-engine docker.io containerd runc

(2)更新apt软件包索引,并安装软件包以允许apt通过HTTPS使用存储库

$ sudo apt-get update$ sudo apt-get install \

    apt-transport-https \

    ca-certificates \

    curl \

    gnupg-agent \

    software-properties-common

(3)添加Docker的官方GPG密钥:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

(4)使用下面的命令来设置stable存储库

$ sudo add-apt-repository \

   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \

   $(lsb_release -cs) \

   stable"

(5)安装DOCKER引擎

$ sudo apt-get update

 $ sudo apt-get install docker-ce docker-ce-cli containerd.io

要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:

$ apt-cache madison docker-ce

  docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages

  docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages

  docker-ce | 18.06.1~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages

  docker-ce | 18.06.0~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages

  ...

使用第二列中的版本字符串安装特定版本,例如5:18.09.1~3-0~ubuntu-xenial。

$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

(6)通过运行hello-world 映像来验证是否正确安装了Docker Engine 。

$ sudo docker run hello-world

安装docker 方式二:软件包

去https://download.docker.com/linux/ubuntu/dists/选择你的Ubuntu版本,然后浏览pool/stable/,选择amd64, armhf或arm64,并下载.deb。

查看系统版本 

$ lsb_release -a

对应具体地址:

https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/

# 安装docker客户端 (docker-ce-cli)

dpkg -i docker-ce-cli_19.03.13_3-0_ubuntu-bionic_amd64.deb

# 安装docker 服务端

dpkg -i docker-ce_19.03.13_3-0_ubuntu-bionic_amd64.deb

安装Docker Compose 方式一:Docker仓库

从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。

(1)运行以下命令以下载 Docker Compose 的当前稳定版本:

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

(2)将可执行权限应用于二进制文件:

sudo chmod +x /usr/local/bin/docker-compose

(3)创建软链:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

(4)测试安装

$ docker-compose --version

docker-compose version 1.27.4, build 1110ad01

安装Docker Compose 方式二:软件包

将docker compose 离线安装包上传至服务器,在安装包目录下执行以下命令:

mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose -v

如出现docker-compose 命令不存在

 可执行下列命令,增加链接:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

2.windows10 专业版系统

环境准备

Docker for Windows的当前版本运行在64位Windows 10 Pro,专业版、企业版和教育版(1607年纪念更新,版本14393或更高版本)上。

如果你满足Docker for Windows的环境条件了,那么首先检查电脑的虚拟化是否开启。

然后再是进入电脑的控制面板->程序->启用或关闭Windows功能->把Hyper-v勾上,启用后电脑会重启,后面就可以下载并安装Docker for Windows了。

下载安装

进入网址https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows 下载并安装稳定版本