前言

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 容器内路径 主机路径;

结束

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

Docker基本概念介绍的更多相关文章

  1. Docker for .Net Developers(part1:Docker基本概念介绍)

    一.什么是Docker 目前,.Net 社区中很可能会用到的两个词是“微服务”和“Docker”. 这两个主题都非常引人注目,并为开发人员和架构师带来兴奋之情. 在这个新系列的博客文章中,我把自己最近 ...

  2. Docker 基础概念科普 和 常用操作介绍

    Docker 基础概念 Docker是什么?         Docker的思想来自于集装箱,集装箱解决了:在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之 ...

  3. 菜鸟系列docker——docker基本概念(1)

    docker基本概念 1.准备 这里先介绍容器技术,后续再介绍docker.docker是容器的一种,除docker以外,还存在coreos.不过在当前趋势下容器和docker基本上可以划为等号了. ...

  4. docker集群——介绍Mesos+Zookeeper+Marathon的Docker管理平台

    容器为用户打开了一扇通往新世界的大门,真正进入这个容器的世界后,却发现新的生态系统如此庞大.在生产使用中,不论个人还是企业,都会提出更复杂的需求.这时,我们需要众多跨主机的容器协同工作,需要支持各种类 ...

  5. 后端技术杂谈9:先搞懂Docker核心概念吧

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  6. Docker这么火爆。章节一:带你详尽了解Docker容器的介绍及使用

    前言 很多小伙伴可能在工作中都听说过Docker,但是实际工作中却没有使用过,听得多了,也对Docker内心有一种很深切的想了解,但是因为各种原因而不知道如何去了解而发愁,不要急,这篇文章带你认识Do ...

  7. Linux和Docker的Capabilities介绍及Setcap命令

    Linux和Docker的capabilities介绍 转载:https://www.cnblogs.com/charlieroro/p/10108577.html 验证环境:centos7 x86/ ...

  8. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)

    集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...

  9. Linux LVM硬盘管理之一:概念介绍

    一.LVM概念介绍: LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘的分区在逻 ...

随机推荐

  1. Linux下部署Django项目

    目录 安装python3.X环境 安装部署开启django 由于Linux系统默认自带的是2.X环境,所以我们需要去安装3.X环境的python. 安装python3.X环境 1.使用下面的命令下载P ...

  2. Windows核心编程 第六章 线程基础知识 (上)

    第6章 线程的基础知识 理解线程是非常关键的,因为每个进程至少需要一个线程.本章将更加详细地介绍线程的知识.尤其是要讲述进程与线程之间存在多大的差别,它们各自具有什么作用.还要介绍系统如何使用线程内核 ...

  3. Ubuntu Linux 学习篇 配置DHCP服务器

    isc-dhcp-server 动态主机配置协议是一个局域网的网络协议.指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码.首先, DHCP服务器必须是 ...

  4. 使用Qt实现一个必应壁纸客户端

    概要 必应的每日壁纸很好看,但是看不到一周以前的壁纸图片,日前使用python开发了必应壁纸收集站,可惜这样的收集站只能在线浏览,我在想要是有一款软件能够下载每日必应壁纸,并应用到windows的桌面 ...

  5. 拷贝构造函数第一个参数最好使用const

    拷贝构造函数的第一个参数要求是自身类型的引用,但是没有一定要求具有底层const属性即对常量的引用,但是使用时最好加上const,原因是我们可能在某些"不知道"的情况下对常量对象调 ...

  6. mybaties longtext 类型不能映射到自动生成的文件

    假设数据库里有 fun_detail 这样一个字段. 使用 MyBatis Generator 生成的 XXExample 文件,发现没有 fun_detail 这个字段. 需要加一行: <co ...

  7. JAVA 面试相关

    1. int和Integer有什么区别? 答:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类 ...

  8. 25.数据结构,LinkedList ,泛型,类型通配符

    3.数据结构 数据结构是计算机存储,组织数据的方式.是指相互之间存在的一种或多种特定关系的数据元素的集合 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率 ---------常见的数据结构 ...

  9. Visual Studio/VS中任务列表的妙用

    一.任务列表开启方法 首先说下开启的方法:视图-任务列表,即可打开任务列表. 快捷键Ctrl+'\'+T,熟练了可以快速开启.注意,'\'键是回车键上面的'',不要按成了'/' 二.任务列表标签设置 ...

  10. [bug] Unrecognized token 'code': was expecting (JSON String, Number, Array, Object,'true', 'false' or 'null')

    JSON格式有误,需用JSON.stringify()函数转换一下 参考 https://www.cnblogs.com/sunyanblog/p/13788740.html https://www. ...