虚拟化与Docker基本概念与Docker的安装

ops/2024/9/25 15:27:09/

Docker

Docker 是一个开源的应用容器引擎,它最初是用 Go 语言开发的。Docker 允许开发者将应用程序及其依赖、库和环境打包到一个可移植的容器中,这个容器可以在任何支持 Docker 的 Linux 或 Windows 机器上运行,保证了应用在不同环境之间的一致性和可迁移性。

Docker与VM虚拟机的区别

容器虚拟机
快速启动启动速度相对较慢
通过namespace实现资源隔离,通过cgroup实现限制资源的最大使用量完全隔离。每个虚拟机都有独立的硬件资源
容器相当于宿主机的进程,性能几乎没有损耗需要通过hypervisor虚拟机管理程序对宿主机资源虚拟访问,有一定的性能损耗
单机容量能够支持成百上千个容器单机容量只能支持最多几十个虚拟机
所有容器共享宿主机内核 每个虚拟机都有独立的操作系统和内核

Docker的核心概念

Docker,这一革命性的容器化技术,以其简单、轻量且高效的特点,彻底改变了软件开发和部署的方式。理解Docker的三个核心概念——镜像、容器和仓库,是掌握这一技术的基础。

镜像(Images)

Docker镜像,可以被视为容器的“蓝图”。它是一个静态的文件,包含了创建Docker容器所需的所有指令和代码。镜像是由多层叠加而成的,每层对应于构建过程中的一个指令。这些层是只读的,确保了镜像的可复现性和一致性。用户可以通过编写Dockerfile来定义和构建自己的镜像,Dockerfile是一个包含了一系列构建指令的文本文件。

容器(Containers)

容器是Docker镜像的运行实例。当您从镜像启动一个容器时,Docker会在镜像的最上层添加一个读写层,用于保存容器运行时的状态更改。容器是高度隔离的,它们拥有自己的文件系统、网络配置和进程空间,这使得容器可以在不影响宿主机或其他容器的情况下运行。容器可以被轻松地启动、停止、删除和重启,它们的生命周期管理是通过Docker提供的工具和API来实现的。

仓库(Repositories)

Docker仓库是存储和分发Docker镜像的地方。Docker Hub是Docker官方提供的一个公共仓库,用户可以在这里上传或下载公开的镜像。仓库可以有多个标签,每个标签对应于仓库中的一个镜像版本,这允许用户为同一仓库中的不同版本镜像指定不同的标签。除了公共仓库,Docker还支持私有仓库,这使得企业在内部网络或云服务中存储和管理自己的镜像成为可能。

Docker的安装

Docker只支持64位系统
安装 Docker的依赖环境

yum install -y yum-utils device-mapper-persistent-data lvm2 

设置阿里云镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

安装DOCKER最新版本

yum install -y docker-ce docker-ce-cli containerd.io

启动docker

systemctl start docker.service

Docker基本命令

查看docker版本信息

docker version 

在这里插入图片描述

查看docker基本信息

docker  info  

在这里插入图片描述

镜像管理

  • 列出本地镜像

    docker images
    

    在这里插入图片描述

  • 搜索镜像

    docker search 镜像名称
    

    在这里插入图片描述

  • 拉取镜像

    docker pull 镜像名称
    

    在这里插入图片描述

  • 删除镜像

    docker rmi 镜像ID
    

在这里插入图片描述
上图镜像ID一样,但是TAG不一样若我要删除TAG为web4的镜像可以用以下命令

docker rmi nginx:web4

在这里插入图片描述
用ID删除会删除所有id为 2ac752d7aeb1的镜像,,效果如下

docker rmi  -f 2ac752d7aeb1

如果不加-f会报错Error response from daemon: conflict: unable to delete 2ac752d7aeb1 (must be forced) - image is referenced in multiple repositories
意思是有多个镜像ip为2ac752d7aeb1
在这里插入图片描述

在这里插入图片描述

容器管理

我要用Nginx镜像创建一个容器并且在后台运行 ,容器名为nginx1并且docker上的nginx的80端口在寄主机上的6930端口上命令如下

docker run -d nginx1 -p 6930:80 nginx#-d后台运行  -p 指定端口号,前为真机后为虚拟机IP

docker ps -a 可以查看所有的容器
docker ps 只能看见正在运行的容器

在这里插入图片描述

仓库管理

  • 登录Docker Hub

    docker login
    

    在这里插入图片描述

  • 推送镜像到仓库

    docker push 镜像名称
    
  • 拉取镜像到仓库

    docker pull 镜像名称
    

容器操作

在这里插入图片描述

  • 复制文件

访问docker搭建的nginx
在这里插入图片描述
将我寄主机器上的index.html文件考入容器
在这里插入图片描述

docker cp 主机路径 容器ID:容器路径
docker cp /opt/index.html  32564ccb17b5:/usr/share/nginx/html

在这里插入图片描述
查看Nginx主页
在这里插入图片描述
成功

下面这条命令是能将docker容器上的文件拷贝到寄主机上

docker cp 容器ID:容器路径 主机路径

我要将下图文件test1文件从docker 容器中拷贝到寄主机/opt目录下
在这里插入图片描述

docker cp 32564ccb17b5:/opt/test1 /opt

在这里插入图片描述

docker export 32564ccb17b5 > nginx2.tar

在这里插入图片描述

 cat nginx2.tar |docker import - nginx:2

在这里插入图片描述

仓库管理

  • 搜索仓库
    docker search 仓库名称
    
  • 保存镜像
    备份镜像
    docker save -o 文件名 镜像名称
    

在这里插入图片描述

  • 加载镜像
    docker load < 文件名
    

http://www.ppmy.cn/ops/15487.html

相关文章

简洁易懂递归 | 力扣124.二叉树中的最大路径和

Problem: 124. 二叉树中的最大路径和 文章目录 解题方法复杂度Code 解题方法 递归实现 最大路径和只会出现在以下3种情况&#xff1a; 只取当前节点取当前节点和最大的一个孩子取两个孩子&#xff0c;并以当前节点为根节点&#xff08;这种无需return给上一层&#xff09; 递归…

Oracle中的视图

1- 什么是视图 视图是一个虚拟表 视图是由sql查询语句产生的 视图真实存在 但是不存储数据 视图中的数据 只是对 基表(源数据表) 中的数据的引用 总的来说 视图可以简化数据 用户&#xff0c;订单&#xff0c;物流 三个表进行关联 吧很复杂的sql查询语句存储成一个视图 …

如何看待AIGC技术

目录 1.概述 2.技术应用 2.1.媒体与内容创作 2.2.教育与学习 ​​​​​​​2.3.艺术创作 ​​​​​​​2.4.游戏产业 ​​​​​​​2.5.工业设计 ​​​​​​​2.6.对未来社会的影响 2.7.可能的发展方向 ​​​​​​​2.8.小结 3.伦理与风险 3.1.AIGC技术面临…

【C++】STL:vector常用接口的使用和模拟实现

Hello everybody!这篇文章主要给大家讲讲vector常用接口的模拟实现&#xff0c;STL库中的实现一层套着一层&#xff0c;十分复杂&#xff0c;目前阶段还不适合看源代码。而模拟实现可以让我们从底层上了解这些接口的原理从而更好的使用这些接口。另外我还会讲一些在vector使用过…

【C语言】多字节字符、宽字符(涉及字符集和编码)

字符集、编码&#xff1a; 字符集&#xff1a;一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称&#xff0c;包括各国家文字、标点符号、图形符号、数字等。例如&#xff1a;ASCII、Unicode、GB2312、GBK、GB18030、BIG5(繁体中文) ... 编码方式&#xff1a;符号…

Docker - HelloWorld

原文地址&#xff0c;使用效果更佳&#xff01; Docker - HelloWorld | CoderMast编程桅杆https://www.codermast.com/dev-tools/docker/docker-helloworld.html 开始之前 在学习本小节之前&#xff0c;你必须确保你正确安装了 Docker&#xff0c;正确安装 Docker 是后续学习的…

【工具类】linux常用别名

1. 【工具类】linux常用别名 1. 【工具类】linux常用别名 1.1. 使用方法1.2. cd 文件时&#xff0c;自动切到其父目录1.3. time 相关1.4. cpu 和 mem 相关 1.1. 使用方法 保存下边内容到 ~/.bashrc 文件&#xff0c;然后执行 source ~/.bashrc如果使用 zsh&#xff0c;则保…

Ubuntu下,Notepad++的安装、汉化与卸载

Notepad的作者有自己的问题&#xff0c;但必须承认的是软件本身质量还是不错的&#xff0c;有朋友感到介意&#xff0c;可以了解另一款软件&#xff1a;Notepad--&#xff0c;目前也在逐步优化中 1.安装 在终端中输入指令 sudo snap install notepad-plus-plus 等待安装即可…