Docker学习

Docker学习


1.Docker简介

1.1 什么是虚拟化

  在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,
予以抽象、转换后呈现出来,打破实体结构间的不可分割的障碍,使用户可以比原来的组态更好的方式来应用这些资源。这些资源的
新虚拟部分是不受现有资源的架设方式、地域或物理组态所限制的。一般所指的虚拟化资源包括计算能力和资料存储。

  虚拟化的技术有很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化、桌面虚拟化、服务虚拟化和虚拟机等。

1.2 什么是Docker

  Docker是一个开源项目,诞生于2013年初,基于Go语言实现的。后来加入Linux基金会,遵从Apache2.0协议,项目代码在Github
上进行维护。

  Docker的基础是Linux,与虚拟机不同的是,Docker只能虚拟出与宿主机相同的容器,但是占用的空间非常小,运行效率非常高。

1.3 Docker的组件

  • 服务器与客户端

      Docker是一个客户端与服务器(C/S)架构程序。客户端向服务器或守护进程发出请求,服务器或守护进程将完成工作并返回结果。
  • 镜像与容器

      镜像是构建Docker的基石。用户基于镜像来运行自己的容器。镜像也是Docker生命周期中的“构建部分”。镜像是基于联合文件系统
    的一种层式结构,有一系列指令一步一步构建出来。

      容器是基于镜像启动起来的,容器中可以运行一个或多个进程。镜像是Docker生命周期中的构建或是打包阶段,而容器则是启动或
    执行阶段。容器时基于镜像启动,一旦容器启动完成后,就可以在容器中安装自己需要的软件和服务。
  • Registry(注册中心)

      Docker用Registry来保存用户构建的镜像。分为公有和私有两部分,Docker公司运营公共的Registry叫做Docker Hub。用户可以
    在Docker Hub注册账号,分享并保存自己的镜像。(Docker Hub 下在巨慢,可以构建自己的Registry)。

  Registry Hub

2.Docker安装与启动

2.1 安装Docker

  • ubuntu 安装
    • apt-get 更新

      sudo apt-get update
    • 安装Docker

      sudo apt-get install docker.io
    • 查看版本

      docker -v
  • centos 安装
    • yum源更新

      sudo yum update
    • 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是device-mapper驱动依赖的

      sudo yum install -y yum-utils device-mapper-presistent-data lvm2
    • 设置yum源为阿里源

      sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    • 安装Docker

      sudo yum install docker-ce
    • 查看版本

      docker -v

2.2 设置ustc的镜像

  ustc是老牌的Linux镜像服务提供者了,还在遥远的Ubuntu5.04版本的时候就在用。ustc的docker镜像加速器速度很快。
ustc docker mirror 的优势之一就是不需要注册,是真正的提供服务。

  https://lug.ustc.edu.cn/wiki/mirrors/help/docker

  编辑该文件:

  vim /etc/docker/daemon.json
  
  在文件中添加如下内容:

1
2
3
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

2.3 Docker的启动与停止

systemctl命令是系统服务管理器指令

  • 启动docker

    systemctl start docker
  • 停止docker

    systemctl stop docker
  • 重启docker

    systemctl restart docker
  • 查看docker状态

    systemctl status docker
  • 开机启动

    systemctl enable docker
  • 查看docker概要信息

    docker info
  • 查看docker帮助文档

    docker --help

3. 常用命令

3.1 镜像相关命令

  • 查看镜像

    docker images
字段 含义
REPOSITORY 镜像名称
TAG 镜像标签
IMAGE ID 镜像ID
CREATED 镜像的创建日期
SIZE 镜像大小
  • 搜索镜像(需要从网络中查找需要的镜像)

    docker search 镜像名称
字段 含义
NAME 仓库名称
DESCRIPTION 镜像描述
STARS 用户评价,反应一个镜像的受欢迎程度
OFFICIAL 是否官方
AUTOMATED 自动创建,表示该镜像有Docker Hub自动构建流程创建的
  • 拉取镜像(从中央仓库下载到本地)

    docker pull 镜像名称

    例如,下载centos7镜像

    docker pull centos:7

  • 删除镜像

    docker rmi 镜像ID

    删除所有镜像

    docker rmi `docker images -q` 注意`,不是’


3.2 容器相关命令

  • 查看容器
    • 查看正在运行的容器

      docker ps
    • 查看所有容器

      docker ps -s
    • 查看最后一次运行的容器

      docker ps -l
    • 查看停止的容器

      docker ps -f status=exited
  • 创建与启动容器
    • 创建容器命令与参数说明

      docker run [参数]
参数 含义
-i 表示运行容器
-t 表示容器启动后会进入其命令行,加入这两个参数后,容器创建就能登录进去,即分配一个伪终端
–name 为创建的容器命名
-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机的目录),可以使用多个-v做多个目录或文件映射。注意,最好做目录映射,在宿主机上做修改,然后共享到容器上
-d 表示创建一个守护式容器在后台运行(这样创建的容器不会自动登录容器,如果只加-i,-t两个参数,创建后就会自动进入容器
-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口,可以使用多个-p做多个端口映射