首页 > 其他分享 >【1.0】Docker介绍

【1.0】Docker介绍

时间:2023-08-29 16:03:50浏览次数:37  
标签:容器 1.0 image 介绍 myapp 镜像 Docker docker

【一】Docker是什么

  • Docker是一个开源项目,旨在实现轻量级的操作系统虚拟化解决方案。

  • 它最初是由dotCloud公司内部的一个业余项目开始的,并且后来成为了Docker Inc.公司的主要产品。

  • 该项目在2013年开源,并加入了Linux基金会,按照Apache 2.0协议进行维护。

  • Docker基于Go语言实现,构建在Linux容器(LXC)等技术的基础之上。

  • 它提供了一种简单高效的方式来创建、打包和分发应用程序和服务,使得应用程序能够以容器的形式运行,而不需要关心底层操作系统的细节。

  • 相比传统的虚拟机技术,Docker具有更轻量级、更快速、更易用的特点。

  • Docker 项目的目标是实现【轻量级的操作系统虚拟化解决方案】。

  • Docker 的基础是 Linux 容器(LXC)等技术。

  • 在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。

  • 用户操作 Docker 的【容器就像操作一个快速轻量级的虚拟机】一样简单。

【二】容器和虚拟化比较

Docker的优势在于:

  • 轻量级:相比传统的虚拟机技术,Docker的容器更加轻量级,启动速度更快,资源占用更少。
  • 灵活性:Docker的容器可以在任何支持Docker的环境中运行,无论是开发机、测试机还是生产服务器,保证了应用程序在不同环境中的一致性。
  • 可移植性:Docker的容器可以在不同主机之间快速迁移和部署,提高了应用程序的可移植性。
  • 高效性:Docker通过共享宿主机的操作系统内核,避免了虚拟机的性能开销,提高了应用程序的运行效率。
  • 生态系统:Docker拥有庞大的生态系统,用户可以在Docker Hub上获取各种类型的镜像,并可以搭建私有的仓库来管理自己构建的镜像。
  • docker 不需要虚拟化出操作系统这一层,它使用的就是宿主机的操作系统资源

【三】Docker概念

  • Docker的核心概念包括镜像(Image)、容器(Container)、仓库(Repository)和服务(Service)

【1】cs架构

  • Docker是一个客户端-服务器(C/S)架构程序。
  • Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。
  • Docker提供了一个命令行工具Docker以及一整套RESTful API。
  • 你可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
mysql://地址+端口
redis://地址+端口
http://地址+端口
  • dockerc和s要通信 没有自定义协议,使用的http协议,符合resful规范

【2】核心概念

(1)镜像(Image):

  • 镜像是Docker的打包格式,包含了运行应用程序所需的所有文件、依赖和配置信息。
  • Docker通过使用Dockerfile来定义镜像的构建规则。Dockerfile是一个文本文件,其中包含了一系列指令来描述如何构建镜像。
  • 用户可以使用Docker命令根据Dockerfile构建镜像,例如:
    # Dockerfile内容
    FROM ubuntu:latest
    RUN apt-get update && apt-get install -y nginx
    COPY myapp /var/www/html
    EXPOSE 80
    CMD ["nginx", "-g", "daemon off;"]
    
    # 构建镜像
    $ docker build -t myapp-image .
    

(2)容器(Container):

  • 容器是镜像的一个运行实例,可以被启动、停止、删除和暂停。
  • 每个容器都是相互隔离的,使用宿主机的操作系统内核。
  • Docker允许用户在容器中运行应用程序,并为每个应用程序提供独立的运行环境。
  • 用户可以使用Docker命令来管理容器的生命周期,例如:
    # 运行容器
    $ docker run -d --name myapp-container myapp-image
    
    # 停止容器
    $ docker stop myapp-container
    
    # 删除容器
    $ docker rm myapp-container
    

(3)仓库(Repository):

  • 仓库用于存储和分享镜像。
  • Docker Hub是一个公共的仓库,用户可以从中获取各种类型的镜像,并将自己构建的镜像发布到该仓库中。
  • 用户也可以搭建私有的仓库来存储自己的镜像。
  • 用户可以使用Docker命令来拉取、推送和搜索镜像,例如:
    # 拉取镜像
    $ docker pull ubuntu:latest
    
    # 推送镜像到Docker Hub
    $ docker tag myapp-image username/myapp-image
    $ docker push username/myapp-image
    
    # 从Docker Hub搜索镜像
    $ docker search nginx
    

(4)服务(Service):

  • 服务是Docker Swarm集群中的一个特性,它允许用户将多个容器组织成一个无缝协作的分布式应用。
  • 通过服务,用户可以定义想要运行的容器数量、容器之间的网络关系和负载均衡等配置。
  • 服务的创建需要先初始化Docker Swarm集群并加入节点,然后使用Docker命令创建和管理服务,例如:
    # 初始化Docker Swarm集群
    $ docker swarm init
    
    # 加入节点到Docker Swarm集群
    $ docker swarm join --token <token> <manager-ip>
    
    # 创建服务
    $ docker service create \
      --name myapp-service \
      --replicas 3 \
      --publish published=8080,target=80 \
      myapp-image
    
    # 管理服务
    $ docker service ls
    $ docker service scale myapp-service=5
    $ docker service update --image new-image myapp-service
    

【3】图解

标签:容器,1.0,image,介绍,myapp,镜像,Docker,docker
From: https://www.cnblogs.com/dream-ze/p/17665031.html

相关文章

  • 【5.0】Docker部署MySQL
    【一】引入根据您提供的内容,我们可以看出在使用Docker运行MySQL容器时,如果没有进行目录映射,配置文件和表数据都将保存在容器内部。当删除容器后,这些数据也会丢失。为了确保数据的持久化并避免数据丢失的情况,您可以进行目录映射来将数据保存在宿主机上。【二】操作步骤【1】......
  • 【4.0】Docker容器操作
    【一】Docker容器操作Docker容器是基于Docker镜像创建的运行实例。把镜像运行成容器,并且一个镜像,可以运行出多个容器【二】运行容器使用以下命令可以将一个Docker镜像运行为一个或多个容器:dockerrun镜像名称每次运行此命令,将创建一个新的容器实例。可以根据需......
  • 【8.0】Docker迁移备份
    【一】镜像的来源:通过dockerpull命令拉取镜像:dockerpull<image_name>该命令将从Docker镜像仓库(如DockerHub)下载指定名称的镜像,并将其存储到本地。通过容器打包成镜像:dockercommit<container_name><image_name>这条命令会将指定的容器打包成一个新的镜像,并根据......
  • 【7.0】Docker部署nginx
    【一】拉取Nginx镜像:dockerpullnginx该命令将从DockerHub上获取最新的Nginx镜像,并将其下载到本地。【二】运行Nginx容器:dockerrun-id--namenginx-p80:80nginx这条命令将在后台启动一个名为"nginx"的容器,并将容器内部的Nginx服务的80端口映射到主机的80端口。......
  • 【6.0】Docker部署Redis
    【一】拉取Redis镜像dockerpullredis该命令将从DockerHub上获取最新的Redis镜像,并将其下载到本地。【二】创建数据和配置目录mkdir/root/datavim/root/redis.conf第一行命令创建一个目录用于持久化Redis数据。第二行命令使用vim编辑器创建一个Redis配置文件,文件......
  • 【9.0】Docker之Dockerfile
    【引入】部署的镜像来源【1】从仓库拉取从仓库拉取:可以通过使用dockerpull命令从远程仓库拉取已经构建好的镜像。例如,要拉取名为nginx的镜像,可以运行以下命令:dockerpullnginx【2】容器做成镜像可以使用dockercommit命令将正在运行的容器创建成一个新的镜像。这......
  • 【10.0】Docker之私有仓库
    【一】创建私有仓库【1】注册docker账号docker官网Docker:AcceleratedContainerApplicationDevelopment按照步骤注册即可【2】登陆Docker账号【3】查看仓库点击上方的Repositories【4】创建仓库点击右上角CreateRepositoriesRepositoryName......
  • Spring Cloud与Docker高并发微服务架构设计实施---微服务监控中心
    在众多正在运行的微服务中,我们必须做到随时掌握每一个服务的运行情况及其健康状态,才能保证整个平台的稳定性和可靠性。使用Hystrix断路器仪表盘功能就可以创建一个监控中心,实现在线监控微服务的运行状态。(此处代码有待完善)首先,在项目的配置管理中心中增加依赖配置<dependencies......
  • Prometheus监控实战系列一: 产品介绍
    一.概述 Promehteus是一款近年来非常火热的容器监控系统,它使用go语言开发,设计思路来源于Google的Borgmom(一个监控容器平台的系统)。 产品由前谷歌SRE MattT.Proudd发起开发,并在其加入SoundCloud公司后,与另一位工程师JuliusVolz合伙推出,将其开源发布。 2016年,由Googl......
  • Prometheus监控实战系列三:配置介绍
    Prometheus使用名为prometheus.yml的配置文件进行设置,通过在启动时指定相关的文件,对配置内容进行加载。该配置文件分为四个模块:global(全局配置)、alerting(告警配置)、rule_files(规则配置)、scrape_configs(目标拉取配置),本文将分别对其进行讲解介绍。一.global 用于定义promethe......