首页 > 其他分享 >Docker 基础介绍

Docker 基础介绍

时间:2023-07-25 15:45:46浏览次数:48  
标签:容器 image 基础 介绍 id 镜像 Docker docker

Docker

Docker是时下热门的容器技术,Docker是os层虚拟化架构(虚拟出来的操作系统和宿主机操作系统共享一个内核)的一种体现产品。

     容器化技术(我们可以把tomcat,redis,nginx……安装docker容器中),可以方便对软件的环境(开发环境/测试环境/生产环境……)进行搬运,可以极大的减少部署成本。且各个容器之间是相互隔离的,减少软件之间的影响。

Docker架构

Docker 包括三个基本概念:

  镜像(Image):一个只读模板。

  容器(Container:通过镜像创建容器。容器可以被创建、启动、停止、删除、暂停等。

  仓库(Repository:仓库用来保存镜像。

容器与镜像的关系类似于面向对象编程中的对象与类。

在安装好并启动了Docker之后,我们可以使用在命令行中使用Docker命令操作Docker,比如我们使用如下命令打印Docker的版本信息。

docker verion

其结果如下:

10.png

  从上面的图中,我们看到打出了两个部分的信息:Client和Server。

  这是因为Docker跟大部分服务端软件一样(如MySQL),都是使用C/S的架构模型,也就是通过客户端调用服务器,只是我们现在刚好服务端和客户端都在同一台机器上而已。

  因此,我们可以使用下面的图来表示Docker的架构,DOCKER_HOST是Docker Server,而Clinet便是我们在命令中使用Docker命令。

11.png

Docker Engine

Docker Server为客户端提供了容器、镜像、数据卷、网络管理等功能,其实,这些功能都是由Docker Engine来实现的。

  1. dockerd:服务器守护进程。
  2. Client docker Cli:命令行接口
  3. REST API:除了cli命令行接口,也可以通过REST API调用Docker


下面是Docker Engine的示例图:

12.png

Docker安装

 1.查看是否已安装docker,如安装,卸载旧版本极其相关依赖

1 yum list installed | grep dockeryum remove docker \<br> docker-client \<br>docker-client-latest \<br>docker-common \<br> docker-latest\<br>docker-latest-logrotate \<br>docker-logrotate \<br>docker-engine

2.安装docker

1 yum install -y docker 

 

3.启动及查看

1 systemctl start/status/stop docker
2 docker version

注册中心Registery

         类似于maven仓库,集中存放镜像文件的场所,一个Registry中会有多个Repository

         仓库Repository是对于其中的镜像进行分类管理,一个Repository中会有多个不同tag的Image

         Registry分为公有(public)和私有(private)两种形式

         最大的公有Registry是Docker Hub,存放了数量庞大的镜像供用户下载使用https://hub.docker.com

         国内的公开Registry包括USTC、网易云、DaoCloud、AliCloud等

  配置国内镜像(USTC)

  • 在宿主机器编辑文件: vi /etc/docker/daemon.json.
  • 在该配置文件中加入(没有该文件的话,就建一个:
1 {
2     "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
3 }

镜像(Image)相关操作

  Docker本质上是一个运行在Linux操作系统上的应用,而Linux操作系统分为内核和用户空间,无论是CentOS还是Ubuntu,都是在启动内核之后,通过挂载Root文件系统来提供用户空间的,而Docker镜像就是一个Root文件系统。

  Docker镜像是一个特殊的文件系统,提供容器运行时所需的程序、库、资源、配置等文件,另外还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。

  镜像是一个静态的概念,不包含任何动态数据,其内容在构建之后也不会被改变。

下面的命令是一些对镜像的基本操作,如下:

1.查看镜像列表

1 # 列出所有镜像
2 docker image ls
3 #简洁版本
4 docker images

2.拉取镜像

  我们可以使用命令从一些公用仓库中拉取镜像到本地,下面就列举一些常用的公用仓库拉取镜像的方式!。

  docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

  拉取一个镜像,需要指定Docker Registry的地址和端口号,默认是Docker Hub,还需要指定仓库名和标签,仓库名和标签唯一确定一个镜像,而标签是可能省略,如果省略,则默认使用latest作为标签名,另外,仓库名则由作者名和软件名组成。可以从https://hub.docker.com上查找相关镜像。

3.删除镜像

当本地有些镜像我们不需要时,那我们也可以删除该镜像,以节省存储空间,不过要注意,如果有使用该镜像创建的容器未删除,则不允许删除镜像。

1 # image_name表示镜像名,image_id表示镜像id
2 dockere image rm image_name/image_id
3  
4 #删除镜像的快捷命令:
5 docker rmi image_name/image_id

 4.导入导出镜像

  可将已有镜像导出,以后可使用自己的镜像,不用到远程(特别是国外)去拉取

1 #导出镜像
2 docker save image_name:tag/image_id > path
3 #导入镜像
4 docker load < path
5 #path代表保存或加载的路径

容器(Container)相关操作

  Docker的镜像是用于生成容器的模板,镜像分层的,镜像与容器的关系,就是面向对象编程中类与对象的关系,我们定好每一个类,然后使用类创建对象,对应到Docker的使用上,则是构建好每一个镜像,然后使用镜像创建我们需要的容器。

1.启动和停止容器

1.以交互方式启动容器: docker run -it --name 容器名称 镜像 /bin bash.

1 docker run -it --name xx xx /bin bash

2.以守护进程方式启动容器: docker run -d --name 容器名称 镜像

1 docker start container_id

2.停止正在运行的容器

1 # container_id表示容器的id
2 docker stop container_id

3.查看所有容器

1 # 查看所有容器
2 docker container ls
3 # 查看所有容器
4 docker ps

4.删除容器

  不允许删除正在运行的容器,因此如果要删除的话,就必须先停止容器。

1 # container_id表示容器id,通过docker ps可以看到容器id
2 $ docker rm container_id
3  
4 # 删除所有容器
5 docker rm $(docker ps -q)
6 # 删除所有退出的容器
7 docker container prune

5.进入容器

1 # 进入容器,container_id表示容器的id,command表示Linux命令,如/bin/bash
2 docker exec -it container_id command

Docker应用

    1.拉取tomcat镜像,启动容器,映射端口

1 docker pull tomcat<br>docker images
2 docker run -d --name docker-tomcat -p 9090:8080 tomcat:9

  2.部署application

1 docker exec -it docker-tomcat /bin/bash
2 docker cp xx.war docker-tomcat:/webapps

  3.启动容器,访问application

标签:容器,image,基础,介绍,id,镜像,Docker,docker
From: https://www.cnblogs.com/xiaoli-qz/p/17580023.html

相关文章

  • AMEYA360:杰华特电子产品介绍
    汽车电子明星产品JWQ5102/340V,2A/3A同步降压DCDC产品特点·AEC-Q100Grade1认证·输出电流能力:2A/3A·低静态电流·内置宽展频调制技术(FSS)降低EMI·0.8V±1.5%参考电压精度应用场景该产品系列包括了从5V到65V的多款D......
  • 一、计算机基础-前置知识
    1.python是一门编程语言什么是编程语言?什么是语言?为什么要有编程语言?编程语言的本质就是一门语言语言就是一种事物和另一种事物沟通的一种表达方式/工具人---------人类的语言-------->奴隶人----------编程语言------->计算机什么是编程?为什么要编程编程就是人把自己......
  • 用Dockerfile实现构建带sshd服务的自定义镜像
    使用Dockerfile构建带sshd服务的自定义镜像教程简介Docker是一种轻量级的容器化平台,可以帮助我们更方便地构建、部署和运行应用程序。本教程将教你如何使用Dockerfile来构建一个带sshd服务的自定义镜像。整体流程下面是构建自定义镜像的整体流程,我们将通过表格的形式展示每个步......
  • 正则表达式中test、exec、match的区别介绍及括号的用法
    test、exec、match的简单区别1、testtest返回Boolean,查找对应的字符串中是否存在模式。varstr="1a1b1c";varreg=newRegExp("1.","");alert(reg.test(str));//true2、execexec查找并返回当前的匹配结果,并以数组的形式返回。 varstr="1a1b1c";varreg=newReg......
  • 03-docker常用命令
    1.dockerps-a:显示运行后的容器,使用-a则显示全部,不使用-a只显示成功运行2.dockerrmi镜像名/镜像ID:删除镜像文件3.dockerstop容器名/容器ID:停止正在运行的容器4.dockerrm容器名/容器ID:删除停止的容器5.dockerlogs容器名:查看运行容器的运行日志6.dockerstart容......
  • 00-docker虚拟化技术基础
    1.虚拟化技术的概念虚拟化技术主要是将物理的资源转变为逻辑上可以管理的资源,以打破物理资源结构之间的壁垒,让计算的元件运行在虚拟的基础上,而不是直接运行在物理的资源上。虚拟化技术的底层是要进行虚拟的硬件设备物理机资源,通过虚拟化技术软件可以将物理机虚拟生成N台虚拟机,......
  • python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
    python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了 本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。 01.python由来与发展介绍 02.项目开发流程   第一章markdown编辑器 01.markdown基本语法 02.Typora简介与安装......
  • 模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别
    目录流程版本安装Docker安装PaddleNLP安装环境准备模型准备压缩模型下载模型模型部署环境配置启动服务测试--暂时还没通过重启图像识别+信息抽取(UIE-X),部署接口供别的应用调用最终在自己部署的环境中识别时报错,不知道是不是和GPU有关,还在尝试中流程在百度BMLCodeLab......
  • vue2-ace-editor基础配置
    简介Ace是一个用JavaScript编写的可嵌入代码编辑器。它与Sublime、Vim和TextMate等原生编辑器的功能和性能相匹配。它可以很容易地嵌入到任何网页和JavaScript应用程序中。Ace被维护为Cloud9IDE的主要编辑器,并且是MozillaSkywriter(Bespin)项目的继承者。快速开始......
  • 免费MES 系统产品介绍
    为了提高生产效率和降低企业成本,更多的企业愿意去使用mes系统,因为mes系统可以提供数据分析、生产建模、生产管理、搭建流程。设备管理、绩效考核、质量管理等强大功能。但对于中小企业来说,直接去购买整套mes系统要价过高,与公司预算有出入。针对这些企业的需求,万界星空研发出一款免......