当前位置:   article > 正文

Docker学习笔记_docker日历

docker日历

什么是Docker

  1. Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google公司推出
    的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub上进行维护。
  2. Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。在 LXC
    的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容
    器就像操作一个快速轻量级的虚拟机一样简单。
  3. 区别:Docker和传统虚拟化的方式最大的不同点是,Docker是在操作系统层面上实现的虚拟化,直接复用本地主机的
    操作系统,而传统的方式则是在硬件层面实现的。

Docker的优点

与传统的虚拟化方式相比具有众多的优势。

  1. Docker容器的启动在秒级
  2. Docker对系统资源利用率高,一台主机上可以同时运行数千个Docker容器。
  3. Docker基本不消耗系统资源,使得运行在Docker里面的应用的性能很高。

相比于传统的虚拟化技术,Docker在以下几个方面具有较大的优势。

  1. 更快速的交付和部署:开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。
  2. 更高效的虚拟化:Docker 容器的运行不需要额外hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。
  3. 更轻松的迁移和扩展:Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。
  4. 更简单的管理:使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

与传统虚拟机的对比

在这里插入图片描述

Docker主要的3个基本概念

  1. Docker中包括三个基本概念:
    镜像(Image)
    容器(Container)
    仓库(Repository)
    理解好这三个概念,就可以了解Docker的整个生命周期。
  2. 镜像:是一个只读的模板,例如一个完整的Centos操作系统镜像可以用来创建Docker容器,Docker中提供了一个很简单的方式来常见镜像和更新镜像,甚至可以从其他地方直接拷贝已经做好的镜像直接使用。镜像有点类似于编程中的Class类,在运行的时候生成对象。
  3. 容器:是镜像创建并运行的实例,就像一个启动好了的播放器程序,它可以被开始,停止,启动和删除。每个容器都是相互隔离的,绝对保证安全。你可以把容易看成一个启动了的Liunx简化版系统,里面包括root用户权限,进程空间,用户空间和网络空间,还包括运行在里面的应用程序。
  4. 仓库:是集中存放镜像文件的地方。还有一种服务叫做仓库注册服务器(可以理解为GitHub这样的托管服务器),里面存放着多个仓库,每个仓库中又包含多个镜像,每个镜像又有不同的标签。仓库的概念有点类似于Git,也分为公有仓库和私有仓库,全世界对打的Docker仓库是Docker Hub,国内最大的Docker仓库是Docker Pool.用户可以在本地网络或者服务器上创建一个私有仓库,当用户创建了一个自己的镜像之后,使用push命令把镜像上传到自己的仓库中,下次在另外一台机器上使用这个镜像的时候,只需要从仓库中pull下来就可以直接使用了。

Docker的安装

  1. Centos7上Docker的安装
yum install docker
    1. 安装之后启动 Docker 服务
    systemctl start docker.service
      1. 验证服务是否已经启动
      #Search the Docker Hub for images
      docker search mysql
      • 1

      在这里插入图片描述
      4. 开启系统启动自动加载

      systemctl enable docker.service

        在这里插入图片描述

        docker常用命令使用

        获取镜像

        1. 镜像是一个模板,可以从镜像服务器上获取做好的镜像。docker 使用 docker pull命令来获取需要的镜像。
        2. 例如我们获取一个mysql镜像
        docker pull mysql

          在这里插入图片描述

          查看已获取的镜像

          docker images

            在这里插入图片描述
            字段分别代表来自哪个仓库、镜像标记、镜像ID、创建时间、镜像大小

            创建镜像

            docker commit

            1. 先启动要创建的镜像
            docker run -t -i c8ee894bd2bd /bin/bash

              在这里插入图片描述
              2. 修改容器后退出容器

              eixt

                在这里插入图片描述
                3. 创建镜像

                docker commit -m 'my mysql' -a 'chenk'  628725f34dbb my/mysql

                  在这里插入图片描述

                  • -m 参数指定提交的说明,和Git中的git commit -m的参数是一样的;
                  • -a指定更新的用户信息;
                  • 后面是用来创建镜像的容器ID;
                  • 最后是创建镜像的仓库名和tag信息;
                  • 创建成功后,命令会返回这个镜像的ID信息;
                  • 接着我们可以使用我们自己创建的镜像来启动容器了。

                  docker build(Dockerfile)

                  1. 首先新建一个目录和Dockerfile
                  touch Dockerfile
                    1. Dockerfile中内容如下
                    vi Dockerfile

                      在这里插入图片描述

                      • 其中 FROM 告诉Docker使用哪个镜像作为基础
                      • 接着是维护者的信息
                      • RUN开头的指令会在创建中运行,例如安装一些软件包,这里使用yum 安装python.注意使用yum 需要制定参数 -qqy,不然呢可能会报错的。
                      1. 使用docker build构建镜像
                      docker build -t='my/mysql:v1' .
                        • 其中 -t 标记来添加 tag,指定新的镜像的用户信息。
                        • “.” 是 Dockerfile 所在的路径(当前目录),也可以替
                          换为一个具体的 Dockerfile 的路径。
                          在这里插入图片描述
                        • 可以看到 build 进程在执行操作。它要做的第一件事情就是上传这个 Dockerfile 内容,因为所有的操作都要依据Dockerfile 来进行。
                        • 然后,Dockfile 中的指令被一条一条的执行。每一步都创建了一个新的容器,在容器中执行指令并提交修改(就跟之前介绍过的 docker commit 一样)。
                        • 当所有的指令都执行完毕之后,返回了最终的镜像 id。所有的中间步骤所产生的容器都被删除和清理了。
                        • 需要注意的是一个镜像是不能操作127层的,否则会报错!
                        • 当然Dockerfile中还可以输入其他的命来,例如可以使用ADD命令复制本地文件到镜像中;用EXPOSE命令对外开放端口;用CMD命令描述容器启动后运行的程序。

                        容器导出导入export、import

                        docker export
                        docker import
                        • 1

                        镜像导出导入save、load

                        docker save
                        docker load
                        • 1

                        Docker容器的创建、启动、和停止

                        1. 容器是独立运行的一个或一组应用,及他们的运行环境。容器是Docker中的一个重要的概念。
                        2. docker容器的启动有两种方式
                        # 启动一个容器,打印出当前的日历
                        docker run centos cal
                        • 1
                        # 参数-t让Docker分配一个伪终端并绑定在容器的标准输入上,-i让容器的标准输入保持打开。
                        docker run -t -i centos /bin/bash
                        • 1
                        # 将在终止状态的容器从新启动
                        docker start mysql
                        • 1
                        1. 守护态运行
                          很多时候,我们希望容易在后台以守护态运行,此时可以添加-d参数来实现(d是daemon的首字母)
                          例如我们启动centos后台容器,每隔一秒打印当天的日历。
                        docker run -d centos /bin/sh -c "while true;do echo hello docker;sleep 1;done"

                          启动之后,我们使用docker ps查看容器的信息

                          docker ps

                            要查看启动的centos容器中的输出,可以使用

                            docker logs 容器ID

                              使用docker stop来终止一个运行中的容器。

                              docker stop

                                并且可以使用docker ps -a来看终止状态的容器。

                                docker ps -a
                                  1. 使用docker run命令来启动容器,docker在后台运行的标准操作包括
                                    1.检查本地是否存在指定的镜像,不存在则从公有仓库下载
                                    2.使用镜像创建并启动容器
                                    3.分配一个文件系统,并在只读的镜像层外面挂载一层可读可写层
                                    4.从宿主主机配置的网桥接口中桥接一个虚拟接口道容器中去
                                    5.从地址池分配一个ip地址给容器
                                    6.执行用户指定的应用程序
                                    7.执行完毕之后容器被终止
                                  声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/867191
                                  推荐阅读
                                  相关标签
                                    

                                  闽ICP备14008679号