docker 摘要(入门版)

简介: Docker安装macOS或者windows下载boot2docker工具CentOSyum install docker-io -ysystemctl start dockerdocker摘要docker虚拟化只虚拟User space一台机器可以运行20-50个co...

Docker

安装

macOS或者windows

  • 下载boot2docker工具

CentOS

  • yum install docker-io -y
  • systemctl start docker

docker摘要

docker虚拟化

  • 只虚拟User space
  • 一台机器可以运行20-50个container
  • 启动速度快
  • 对内核有要求(不能像VMware一样可以安装mac,windows和linux)
  • 用于大数据,分布式和集群

container实现

  • cgroup(内核中对资源的限制机制,通过控制进程(一个container实例)来限制)
  • namespace(每一个容器都是有一个自己网络进程的独立的虚拟环境,实现容器间的隔离
  • chroot(文件系统的隔离,有一个真实的物理文件系统(物理机上),其他的都是虚拟的文件系统(虚拟的文件系统在内存中))
  • 以上,cgroup,namespace,chroot都是在linux中,也就是直接调用linux,后来为了跨平台,将上面的封装成了libcontainer库,让docer依赖于它

  • pid,容器有自己独立的进程表和1号进程
  • net,容器有自己的network info
  • ipc,container之间的通信
  • mnt,每个容器都有自己唯一的目录挂载,是真实的挂载目录的子目录
  • utc,有独立的hostname和domain

层次

  • server -> hostOS -> docker engine -> app1

使用aufs实现分层的文件系统管理

  • Image是一种文件系统,里面必须有操作系统或者软件,docker中的系统Image很小,因为只包含很好的最核心的部分,每一个那么多的外围
  • 只读为Image,可写为container,image是java中的class,container是对象
  • Image类似一个单链表系统,每一个image包含一个指向parent image的指针
  • 每一个parent image的image是base image
    • 层次: debain image(base image) -> apache image -> container
    • 一般base image是操作系统镜像
    • 建议:一个container干一件事情

dockerfile(类似于makefile,是命令的集合)

  • 描述一个Image的层次,就提描述了一个依赖次序,centos -> apache -> container
  • 有了它可以完美的重现出开发环境,方便了测试人员

docker hub(镜像仓库,类似于github)

C/S运行

  • client request -> server -> http server -> router -> job -> driver

使用

  • docker pull {image name}
  • docker images --no-trunc
  • docker run [OPTIONS] IMAGE[:TAG] [CMD][ARG...]
    • -name
    • -i: iteract
    • -t: tag
    • -d: detach
  • docker ps
    • 不加上-a选项显示的正在运行的容器
    • 加上-a显示所有的容器,包括停止的
  • docker inspect [ID]
  • docker logs
  • docker build
  • docker rm/kill/stop id, 关闭容器
    • 批量操作: docker rm/kill/stop $(docker ps -a -q)
  • docker run -t -i centos /bin/bash, -t表示是伪tty(就是给一个终端,如果每一个则容器一start就stop了),-i表示iteract(在有了终端这个前提之下,如果attach到容器中,可以执行交互式的命令,如果没有则什么都干不了),-d就是在后台运行,不会在执行了上面这个命令之后直接进入到容器中
    • 进入到了交互之界面,使用exit退出,但是也会stop容器,如果要在一次进入到该容器,需要先start容器,则attach容器,因为-i会前台运行,使用-d则是相反的
  • docker cp id:path hostpath

自己的摘要

  • docker在某些方面和git是一样的,不如说对于image镜像都是通过版本控制的,我们从dockeruhb中pull下来镜像文件,如果我们将其启动为一个容器,如果我们在这个容器中进行了修改,docker会通过文件将其修改记录下来,我们可将当当前的容器commit成一个新的image,这就类似于git中的一个commit点
  • 在确定一个容器的时候是使用container id
  • 在确定一个image的时候,是通过name:tag,如果只有name则会选中所有的tag,tag表示一个版本
  • 生成一个image(提交点)的方法有两种,docker commit 和 docker build,在docker build中就是在一个image中执行一个命令的集合在提交成一个新的image
目录
相关文章
|
25天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
82 2
|
2月前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
89 5
|
2月前
|
Linux 持续交付 Docker
掌握Docker:从入门到实践
Docker 是一个开源容器引擎,允许开发者将应用及其依赖打包成可移植的容器,在任意 Linux 机器上运行。本文从基本概念入手,详细介绍 Docker 的安装、基本操作、镜像构建及 Docker Compose 的使用,并通过实战案例展示如何部署 Web 应用、构建微服务架构及实现 CI/CD。通过学习,你将掌握 Docker 的核心功能,提升应用开发和部署效率。
|
19天前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
27天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
1月前
|
运维 持续交付 虚拟化
docker入门详解!!!
本文介绍了容器技术的发展历程,从物理机到虚拟化再到容器化,重点讲解了Docker的诞生及其优势。Docker通过轻量级的容器技术,实现了资源的高效利用、快速启动、环境一致性、持续交付和部署等优点。文章还详细解析了Docker的架构和工作原理,包括Docker Daemon、REST接口、Docker Client等组件,以及容器与虚拟机的差异。
69 2
|
1月前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
49 3
|
2月前
|
Ubuntu Shell 开发者
Docker入门:轻松开始容器化之旅
【10月更文挑战第17天】Docker 是一种开源的应用容器引擎,它让开发者能够“一次构建、到处运行”。Docker 通过容器化技术将应用程序及其依赖打包在一起,从而确保应用在任何环境中都能一致地运行。本文将为新手用户提供一个全面的Docker入门指南,包括基本概念、优势、安装配置以及如何创建和管理容器。
53 2
|
2月前
|
存储 运维 云计算
探索Docker容器化:从入门到实践
在这个快速发展的云计算时代,Docker容器化技术正在改变应用的开发、部署和管理方式。本文旨在为初学者提供一个关于Docker的全面入门指南,并通过实践案例展示Docker在实际开发中的应用。我们将一起了解Docker的核心概念、基本操作、网络和存储,以及如何构建和部署一个简单的Web应用。无论你是开发者还是运维人员,本文都会帮助你快速掌握Docker的核心技能。
|
2月前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!