docker学习笔记(一):介绍

128人浏览 / 0人评论

虚拟化的缺点

  • 启动速度比较慢
  • 资源消耗比较高
  • 兼容性比较差
    • V2V和P2V迁移(VM Converter)

为了解决上诉问题,出现了一种技术——容器。最早的容易叫做Linux Container,简称LXC,后来才出现了Docker。其实Docker底层也是基于LXC实现的,但却优于LXC。

docker

整体采用分层结构。

学习docker首先需要学习的两个概念就是——镜像和容器。其实学过面向对象思想的同学基本上不难理解其中的关系,我首先觉得他们跟类和对象差不多,类实例化后就是对象,镜像实例化后就是容器。

分层结构

那么,从docker实现机制上看,这两者又是什么区别呢?

  • 镜像:一系列的只读层
  • 容器:在镜像上加上一个可读写层
  • 数据卷:这个用于与永久保存数据,可以理解为windows的除C盘以外的盘符,不管用户怎么在C盘安装系统,其他盘的数据都不会发生变化,一样可以使用。

问题:如果删除镜像中的某些层,已有的容器是否还能正常的启动? 我猜想是不能的。

安装Docker——centos7.4

  • 查看系统版本
cat /etc/redhat-release
  • 安装docker
yum install docker -y
  • 启动
systemctl start docker
  • 设置开机启动
systemctl enable docker
  • 查看容器(正在运行)
docker ps
  • 查看所有容器
docker ps -a
  • 查找镜像
docker search mysql
  • 拉去镜像(mysql)
docker pull mysql
  • 查看镜像层级结构
docker history mysql

docker加速

默认情况下,拉去镜像是在docker-hub上拉去,这个网站部署在国外,所以速度比较慢,甚至无法访问。那么我们该怎么办呢?

配置加速地址

  1. 获取加速地址,可以从阿里云上获取(容器镜像服务)
  2. 修改/etc/docker/demon.json
  3. 重启docker

从国内源拉去

比如从网易云上拉去:

docker pull hub.c.163.com/libaray/mysql:latest

全部评论