docker.02.docker基础及镜像操作(代码片段)

潮汐先生 潮汐先生     2023-02-02     178

关键词:

Docker基础及镜像操作

基本概念

仓库(Repository)

Docker中的仓库类似于我们经常使用的Maven,只不过Docker仓库中维护的不是jar包,而是一个个的镜像(image)。Docker官方维护的仓库是Docker Hub,我们可以在搜索框中直接搜索我们需要的镜像。如下图所示:

镜像(Image)

镜像理解起来比较抽象。Docker中文使用手册中的解释为:Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。

简单来说:一个镜像代表一个应用环境,他是一个只读的文件。如 mysql镜像、tomcat镜像、nginx镜像等

镜像是一种轻量级的,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时所需的库、环境变量和配置文件。

容器(Container)

镜像每次运行之后就会产生一个容器,也就是说容器就是正在运行的镜像。他是可读可写的,不像镜像是只读的。镜像与容器的关系就好比Java中的类和实例的关系:镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等

Hello World

我们启动Docker虚拟机,上一节中我们已经成功安装了Docker。我们来运行一下官方的Hello World镜像。如下图所示:

  • 运行一个镜像使用命令docker run image_name:tag | image_id。如果image_name后面没有跟tag的话默认为latest
  • docker运行镜像是会先从本地仓库中寻找(linux下本地仓库的地址默认为var/lib/docker),如果本地仓库中没有找到会到远程仓库中寻找,然后下载到本地运行

Docker中镜像的运行过程

Docker的辅助命令

在前面我们已经用到了一些Docker命令,但是没有设计具体的镜像和容器操作,这里我们把他归类为辅助命令总结如下:

# 查看docker信息
docker version | info

# docker帮助信息
docker --help

镜像操作

  • 查看所有镜像

    # -q:只显示镜像的id
    docker images [-q]
    # 查看名称为image_name的所有镜像
    docker images [image_name] [-q]
    


  • 下载镜像

    # 推荐镜像名:tag方式拉取镜像 如果不跟tag,默认拉取最新版本
    docker pull image_name[:tag]
    

  • 搜索镜像

    # 这里的搜索指的是搜索Docker Hub里面是否存某个名字的镜像,但是不会列出版本号
    docker search image_name
    

  • 删除镜像

    # 正常删除 根据镜像名称或者镜像id删除镜像,必须是没有运行过得镜像
    docker image rm image_name:tag | image_id
    # 强制删除(运行过|中的都可以删除)
    docker image rm -f image_name:tag | image_id
    # 批量强制删除
    docker image rm -f $(docker images tomcat -q)
    

    我们先启动镜像tomcat:8.0.53,然后执行正常删除,可以看到结果提示unable to remove……。如下图所示:

    对于上面的情况我们可以执行强制删除命令,must force的意思就是我们可以在后面加上参数-f,删除结果如下图所示:

    对于批量删除,我们需要在下载一个镜像,这里比如是tomcat:7.0.109

    然后批量执行删除tomcat的命令,结果如下:

docker.02.docker基础及镜像操作(代码片段)

Docker基础及镜像操作基本概念仓库(Repository)Docker中的仓库类似于我们经常使用的Maven,只不过Docker仓库中维护的不是jar包,而是一个个的镜像(image)。Docker官方维护的仓库是DockerHub,我们可以在搜... 查看详情

docker02docker初识:第一个docker容器和docker镜像(代码片段)

目录[TOC]一、第一个Docker容器        使用dockerrun命令时,如果在本地没有改镜像,那么会直接重DockerHub(一个官方的镜像库)中拉取镜像。dockerrun--rmhello-world#运行结果展示Unabletofindimage‘hello-world:late... 查看详情

docker02:docker核心技术探索分层联合文件系统(代码片段)

众多周知,Docker容器的文件系统可以由Linux的各种分层联合文件系统提供底层支撑,这种分层联合文件系统通常在一些处于低层的只读文件系统之上叠加一个处于高层的可读写文件系统。下面结合Docker的镜像和容器的相关概念,... 查看详情

[docker]02docker三剑客简介(代码片段)

前言DOCKER技术在推出后掀起了一阵容器化技术的热潮,容器化使得服务的部署变得极其简易,这为微服务和分布式计算提供了很大的便利。为了把容器化技术的优点发挥到极致,docker公司先后推出了三大技术:docker-machine,docker-comp... 查看详情

docker基础命令详解——镜像及容器操作(代码片段)

Docker基础命令详解——镜像及容器操作前言?上篇文章介绍了有关Docker的基础与Linux下docker的安装,本文主要讲解安装docker后的基础使用方法以及命令的介绍,主要是docker镜像操作及容器操作命令。?当然,docker的相关命令非常多... 查看详情

prometheus(普罗米修斯)搭建监控

...theus(普罗米修斯)实验环境:(各个主机,ip,所需服务)docker01docker02docker031.101.201.30NodeEXporterNodeEXporterNodeEXportercAdvisorcAdvisorcAdvisorPrometheusServerGrafana全部关闭防火墙,禁用selinux.[root@docker01~]#systemctlstopfirewalld[root@docker01~]#systemctldis... 查看详情

docker02docker安装

一、在CentOS上安装Docker以下版本的CentOS支持Docker:CentOS7(64-bit)      #CentOS从7开始,和RHEL7一样都只支持64位架构。CentOS6.5(64-bit)orlater请注意,由于Docker的局限性,Docker只能运行在64位的系统中。内核支持 &... 查看详情

dockerfile命令介绍及实例

Dockerfile命令介绍及实例当你在使用Docker构建镜像的时候,每一个命令都会在前一个命令的基础上形成一个新层。这些基础镜像可以用于创建新的容器。本篇文章将手把手教您如何从基础镜像,一步一步,一层一层的从Dockerfile构... 查看详情

docker02:docker核心技术探索网络命名空间和网络隔离(代码片段)

在Docker中可以为Docker容器创建与原始宿主系统以及其它容器中的虚拟系统之间相互隔离的虚拟网络环境。Docker的网络分为以下几种模式:(1)bridge模式。这将配置一个虚拟网络系统,容器中的虚拟网卡通过NAT与宿主系统的真实网卡... 查看详情

轻松构建docker服务发现机制(代码片段)

目录前言一、环境二、部署步骤1.Docker01操作2.docker02、docker03加入consul集群三、验证前言服务发现在SOA(Service-OrientedArchitecture)架构中是一个很重要的概念,是支撑大规模SOA的核心服务,在应用Docker容器集群的实践中也是非... 查看详情

docker基础理论及安装部署(镜像与容器的基本操作注解)(代码片段)

Docker一、前言理论概述1.1背景1.2Docker是什么1.4Docker的优势及意义1.5隔离是如何实现的二、Docker的使用场景三、Docker引擎(DockerEngine)四、Docker架构(Dockerarchitecture)五、Docker核心概念六、容器和虚拟机区别七、控... 查看详情

docker基础理论及安装部署(镜像与容器的基本操作注解)(代码片段)

Docker一、前言理论概述1.1背景1.2Docker是什么1.4Docker的优势及意义1.5隔离是如何实现的二、Docker的使用场景三、Docker引擎(DockerEngine)四、Docker架构(Dockerarchitecture)五、Docker核心概念六、容器和虚拟机区别七、控... 查看详情

开机启动及grub基础知识和光盘镜像制作(代码片段)

1、简述linux操作系统启动流程POST-->BIOS-->bootloader(MBR)-->kernel(ramdisk)-->rootfs(switchroot)-->/sbin/init加电自检启动bios读取mbr引导加载内核(ramdisk)根切换执行/sbin/init文件执行/etc/rc.d/目录下所有S开头的服务2、简述grub启动引... 查看详情

docker02:docker核心技术探索使用cgroup限制资源的使用(代码片段)

可以限定容器中的虚拟系统对于各种资源的使用,包括cpu,内存,磁盘和网络资源,这需要使用cgroup相关技术来实现。为了使用cgroup相关的功能,我们首先需要将cgroup提供的特殊文件系统cgroup安装到我们的容器中。在容器的/etc/fst... 查看详情

基于alpine基础镜像构建jdk镜像以及tomcat镜像及业务构建(代码片段)

1.1制作alpine自定义镜像Alpine使用的c库使用mini版的musllibc与其他Linux发行版使用的gnulibc不一样。虽说号称兼容,但也只是部分兼容了。Alpine官方给出了Alpine的三大特征Small、Simple、Secure,但其实我们知道一个jdk就已经不小了,强行... 查看详情

docker基本管理(容器及镜像操作)(代码片段)

Docker基本管理(容器及镜像操作)一、Docker概述设计宗旨优点容器在内核中支持2种重要技术二、Docker与虚拟机的区别三、Docker的核心概念镜像容器仓库总结四、安装Docker五、Docker镜像操作1.搜索镜像2.获取镜像3.镜像加速... 查看详情

docker基本管理(容器及镜像操作)(代码片段)

Docker基本管理(容器及镜像操作)一、Docker概述设计宗旨优点容器在内核中支持2种重要技术二、Docker与虚拟机的区别三、Docker的核心概念镜像容器仓库总结四、安装Docker五、Docker镜像操作1.搜索镜像2.获取镜像3.镜像加速... 查看详情

13-5dockerfile讲解及演示

...写DokcerFile文件整体的三个步骤FROM指令,相对比较特殊。docker里面的东西理论上都是运行在操作系统之上的。所以一般我们docker都会有基础镜像,这些基础镜像大部分都是以比如说centOS、linux啊、windows啊类似于这样的东西为主。... 查看详情