zoukankan      html  css  js  c++  java
  • Docker基本概念介绍

    前言

    Docker和Kubernetes是我最近在学习的内容,本来是去年的目标,由于工作比较忙,没有时间去学习,今年剩下的半年时间我会好好系统学习下相关的内容,最后在学习下Devops相关理念,希望最终能形成自己的一套思想;

    Docker系列文章:

    Docker基本组成

    镜像(Image)

    Docker镜像是一个特殊的文件系统,包含了程序运行时候所需要的资源和环境。镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像就是模板,可以用来创建Docker容器,另外Docker提供了很简单的机制来创建镜像和更新现有的镜像,用户还可以直接从镜像仓库下载已经做好的镜像来直接使用。

    容器(Container)

    容器就是运行镜像的,镜像和容器的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体,容器可以被创建、启动、停止、删除、暂停等。每个容器都是互相隔离的,保证安全的平台,容器可以理解为简易版的Linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行再其中的应用程序。

    仓库(Repository)

    仓库就是存放镜像的地方,仓库中又包含了多个镜像,每个镜像有不同的标签,用来区分不同的镜像版本,仓库分为两种,公有和私有仓库,最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载,这里仓库的概念与Git类似,Registry可以理解为Github这样的托管服务。

    三者关系如下:
    1. 基于镜像创建容器,也可以基于容器创建镜像;
    2. 从仓库拉取镜像,也可以将本地镜像推送到仓库;

    Docker如何工作

    Docker是一个Client-Server结构,Docker守护进程运行在主机上,客户端与Dcoker通过Socket访问,守护进程接收客户端的命令并且管理运行主机的容器,容器是一个运行环境,就是我们的集装箱;

    Docker的基本命令

    基础命令

    docker info 获取docker系统配置的信息;
    docker version 获取docker版本;
    docker help 获取docker帮助文档;

    镜像命令

    docker images 查看镜像相关的信息:

    • -a 查看所有镜像;
    • -q 查看容器id;

    docker search 搜索容器信息

    • -filter=STARS=3000 关注度大于300以上的;

    docker pull 下载镜像,采用分层下载,采用联合文件系统,默认是新的版本的

    • dcoker pull mysql:5.7 dcoker pull 镜像名称:版本号(Tag);

    docker rmi 删除镜像

    • docker rmi -f 镜像ID
    • docker rmi -f $(docker iamges -aq) 删除全部的镜像id
    容器命令

    docker run 是Docker中最为核心的一个命令,用于新建并启动容器

    • -name="名称" 容器名称;
    • -d 使用后台交互的方式;
    • -it 使用交互方式,进入到容器内部;
    • -p 用于将容器的端口暴露给宿主机的端口,格式为:hostPort:containerPort ,通过端口的暴露,可以让外部主机能够访问容器内的应用;
    • -P 随机指定端口;
    • -c 用于给运行在容器中的所有进程分配 CPU 的 shares 值,这是一个相对权重,实际的处理速度与宿主机的 CPU 相关
    • -m 用于限制为容器中所有进程分配的内存总量,以 B、K、M、G 为单位;

    docker ps 列出正在运行的容器

    • -a 列出当前正在运行的容器和历史运行过的容器;
    • -n=? 显示最近创建的容器;
    • -q 只显示容器的编号;

    退出容器

    • exit 容器停止并退出;
    • Ctrl + P + Q 容器停止并退出;

    删除容器

    • docker rm 容器id删除指定的容器,不能删除正在运行的容器;
    • docker ps -a -q | xargs docker rm 删除所有的容器;

    启动和停止容器的操作

    • docker start 容器id 启动容器;
    • docker restart 容器id 重启容器;
    • docker stop 容器id 停止容器;
    • docker kill 容器ID 强杀容器;

    docker logs 查看docker logs的日志

    • --details 显示日志详情;
    • -f 跟随日志输出显示;
    • --tail 从末尾开始显示指定行的数据;
    • -t 显示时间戳;
    • --since 开始时间;
    • --until 结束时间;

    docker top 查看容器的进程信息

    docker inspect 查看镜像的元数据

    进入正在运行的容器

    • docker exec -it 容器id;
    • docker attach 容器Id;

    容器拷贝文件到主机上

    docker cp 容器Id 容器内路径 主机路径;

    结束

    欢迎大家点点关注,点点赞 !

  • 相关阅读:
    JS LeetCode 1423. 可获得的最大点数简单题解
    SpringBoot 学集 (第六章) Docker
    Linux 学记 (第三章)
    Linux 学记 (第二章)
    Linux 学记 (第一章)
    SpringBoot 学集 (第五章) Web开发续
    SpringBoot 学集 (第四章)Web开发
    SpringBoot 学集 (第三章) 日志框架
    SpringBoot 学集 (第二章) 配置文件
    SpringBoot 学集 (第一章)
  • 原文地址:https://www.cnblogs.com/wtzbk/p/14866338.html
Copyright © 2011-2022 走看看