[关闭]
@zzy0471 2019-12-27T08:24:12.000000Z 字数 2970 阅读 723

Docker的基础概念和安装

赵忠印 2019-11-4

Docker


什么是Docker

Docker通过一种被称为“容器”的技术对进程进行封装隔离,和虚拟机不同,Docker不需要虚拟硬件,被隔离的进程实际上运行在宿主上,相比虚拟机来说,更加轻便。

Docker分为企业版和社区版(Docker CE),以下内容以社区版为例。

为什么使用Docker

高效利用系统资源

和传统的虚拟机相比,Docker容器更高效,因为不需要虚拟硬件,节约了CPU、内存等资源,同样的宿主,能运行的Docker容器数量远大于虚拟机数量(不过一般一个Docker容器中只运行一个进程)

启动速度快

传统虚拟机启动需要数分钟,Docker启动需要数秒钟,因为Docker容器内的进程实际上运行在宿主上

一致的运行环境

Docker通过“镜像”来解决有时候发生的开发环境和生产环境不一致的问题,开发环境、测试环境和生产环境可以使用相同的镜像,避免了应用在开发环境没问题而在生产环境出问题的情况

基本概念

镜像

镜像(image)可以理解为由一系列文件组成,可以提供容器运行时需要的程序和资源

容器

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

容器内的进程和其它容器内的进程以及宿主进程相隔离

仓库

仓库(Docker Registry)用来管理镜像,可以从公共的镜像中pull镜像,也可以自己搭建私有仓储

安装Docker

本文将在Ubuntu16.4上安装Docker

配置apt-get源

这个步骤不是必须的,但是从Ubuntu自带的源安装应用在国内会非常慢,此处可以使用阿里提供的源:

  1. deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
  2. deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
  3. deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
  4. deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
  5. deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
  6. deb http://mirrors.aliyun.com/ubuntu/ xenial universe
  7. deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
  8. deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
  9. deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
  10. deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
  11. deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
  12. deb http://archive.canonical.com/ubuntu xenial partner
  13. deb-src http://archive.canonical.com/ubuntu xenial partner
  14. deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
  15. deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
  16. deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
  17. deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

将文件/etc/apt/sources.list中的内容替换为上述内容即可,替换完毕后执行命令apt-get update使之生效。

卸载旧版本

  1. $ sudo apt-get remove docker \
  2. docker-engine \
  3. docker.io

安装辅助工具

  1. $ sudo apt-get install \
  2. apt-transport-https \
  3. ca-certificates \
  4. curl \
  5. software-properties-common

前两个是使用apt下载应用时需要用到的(可能系统已经安装了),curl是后面发送http请求用的,software-properties-common是修改apt源用的,用此工具就不用手动修改/etc/apt/sources.list文件了。

  1. $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

获取一个用来下载Docker时用的密钥,此处用的是国内的镜像。

  1. $ sudo add-apt-repository \
  2. "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
  3. $(lsb_release -cs) \
  4. stable"

/etc/apt/sources.list添加docker的源,并执行apt-get update

安装Docker

  1. sudo apt-get install docker-ce

把当前用户加入到Docker组

  1. $ sudo usermod -aG docker $USER

如果缺少了这个步骤,使用当前用户运行一个镜像(在镜像的基础上开启一个容器)时会报权限错误。

  1. $ sudo usermod -aG docker $USER

启动Docker

  1. $ sudo systemctl enable docker
  2. $ sudo systemctl start docker

Systemd是一系列管理守护进程(类似于Widnows的服务)的命令合集,systemctl命令就是其中之一。

测试Docker是否安装成功

  1. $ docker run hello-world

这个命令会创建一个镜像并启动容器,如果没有报错,说明Docker安装无误。可以运行命令$ docker image ls$ docker container ls来查看已经存在的镜像和容器。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注