Docker的学习

  • Docker
    Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通 过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的 APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到 “一次封装,到处运行”。
    Linux 容器技术的出现就解决了这样一个问题,而Docker 就是在它的基础上 发展过来的。将应用运行在Docker 容器上面,而Docker容器在任何操作系 统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境, 换到别的机子上就可以一键部署好,大大简化了操作。

  • Docker优势
    解决了运行环境和配置问题的软件容器
    方便做CI/CD
    有助于整体发布
    容器虚拟化技术

  • Docker组成
    由镜像(只读模板)、容器(通过镜像生成的docker容器)、仓库(放了一堆镜像的地方)组成。
    Docker镜像(Image)就是一个只读的模板。镜像可以用来创建Docker 容器,一个镜像可以创建很多容器。
    Docker 利用容器(Container)独立运行的一个或一组应用。容器是 用镜像创建的运行实例。
    它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安 全的平台。
    可以把容器看做是一个简易版的Linux 环境(包括root用户权限、进程 空间、用户空间和网络空间等)和运行在其中的应用程序。
    容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在 于容器的最上面那一层是可读可写的。

仓库(Repository)是集中存放镜像文件的场所。
仓库(Repository)和仓库注册服务器(Registry)是有区别的。
仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库是Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云、网易云等。

Docker本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是 image镜像文件。
只有通过这个镜像文件才能生成Docker 容器。image文件可以看作是容器的模板。
Docker根据image 文件生成容器的实例。同一个image文件,可以生成多个同时运行的容器实例。

image文件生成的容器实例,本身也是一个文件,称为镜像文件。
一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端,创建一个对应的运行实例,也就是我们的容器。
至于仓储,就是放了一堆镜像的地方,我们可以把镜像发布到仓储中,需 要的时候从仓储中拉下来就可以了。

Docker是一个Client-Server结构的系统,Docker守护进程运行在主 机上,然后通过Socket连接从客 户端访问,守护进程从客户端接 受命令并管理运行在主机上的容器。
容器,是一个运行时环境,就是我们前面说到的集装箱。

  • 为什么Docker比VM快
    (1)docker有着比虚拟机更少的抽象层。由亍docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
    (2)docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。
    仍而避免引寻、加载操作系统内核返个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,返个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返个过程,因此新建一个docker容器只需要几秒钟。

(一) 安装docker步骤
官方文档:https://docs.docker.com/engine/install/centos/
(文档中有关于卸载docker的说明)
1、设置存储库,2个命令
yum install -y yum-utils

yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo
2、安装docker引擎
yum install docker-ce docker-ce-cli containerd.io
3、启动docker服务
systemctl start docker
4、执行docker run hello-world命令测试
如果能打印出Hello from Docker!并且下面有打印出1234,说明docker安装成功了

(二) 配置镜像加速器,下载镜像(docker pull镜像名称)更快
(直接复制下面的命令到linux客户端执行,不需要复制#注释的内容)
sudo mkdir -p /etc/docker #创建目录
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://iono5uz3.mirror.aliyuncs.com”]
}
EOF #EOF表示结束符,不常用
sudo systemctl daemon-reload #重新加载一下配置文件
sudo systemctl restart docker #重启服务

(三) 经常做的操作
docker pull hello-world
docker images
docker run hello-wolrd
注意:执行docker run XXX 命令过程:先在本地找镜像文件,如果找到则直接执行;如果找不到则去hub仓库上拉镜像文件,然后再去执行
Docker的学习

(四) docker常用命令
1、 docker images 查看本机的镜像文件
2、 docker version 查看docker的版本
3、 docker info 查看docker更详细的信息
4、 docker –help 查看docker所有的命令