云原生技术与应用-容器技术技术入门与Docker环境部署

目录

一.Docker概述

  1.什么是Docker

  2.Docker的优势

  3.Docker的应用场景 

  4.Docker核心概念

二.Docker安装

  1.本安装方式使用阿里的软件仓库

  2.Docker镜像操作

  3.Docker容器操作


一.Docker概述

   因为 Docker 轻便、快速的特性,可以使应用达到快速迭代的目的。每次小的变更,马上就可以看到效果,而不用将若干个小变更积攒到一定程度再变更。每次变更一小部分其实是一种非常安全的方式,在开发环境中能够快速提高工作效率。

   Docker 容器能够帮助开发人员、系统管理员、质量管理和版本控制工程师在一个生产环节中一起协同工作。制定一套容器标准能够使系统管理员更改容器的时候,程序员不需要关心容器的变化,而更专注自己的应用程序代码。从而隔离开了开发和管理,简化了开发和部署的成本。

1.什么是Docker

   Docker 是一种开源的容器化平台,核心作用是让应用程序及其依赖能够在隔离的容器环境中运行,实现 “一次构建,到处运行” 的效果。

简单来说,它像一个 “标准化的包装箱”:

  • 开发者将应用代码、运行环境(如库、配置)等打包进 “容器”,确保应用在任何支持 Docker 的环境(开发机、服务器、云平台等)中都能以相同方式运行,解决了 “在我这能跑,到你那却不行” 的兼容性问题。

  • 容器与宿主机系统共享内核,但拥有独立的文件系统和资源(如内存、CPU),相比虚拟机更轻量、启动更快(秒级),资源利用率也更高。

2.Docker的优势

特性Docker 容器虚拟机
启动速度秒级分钟级
计算能力损耗几乎无损耗 50% 左右
性能接近原生弱于
系统支持量(单机)上千个几十个
隔离性资源限制完全隔离

容器技术的优势主要体现在以下几个方面:

  • 隔离性:不同的容器之间相互隔离,一个容器的故障或异常不会影响其他容器的运行,提高了应用的稳定性和安全性。

  • 可移植性:容器将应用及其依赖项打包成一个独立的单元,使得应用可以在不同的环境中(如开发环境、测试环境、生产环境)无缝迁移和运行,避免了 “在我的机器上能运行,但在你的机器上不行” 的问题。

  • 资源高效利用:容器共享宿主机的操作系统内核,不需要为每个应用运行独立的操作系统,大大减少了资源的浪费,提高了服务器的利用率。

  • 快速部署和扩展:容器的启动速度非常快,通常只需要几秒钟,而且可以根据需要快速创建和销毁容器,方便进行应用的快速部署和弹性扩展。

 3.Docker的应用场景

  • 开发环境管理:开发人员可以使用容器来创建一致的开发环境,确保团队成员之间的环境一致性,提高开发效率。

  • 持续集成和持续部署(CI/CD):在 CI/CD 流程中,容器可以帮助实现应用的快速打包、测试和部署,实现自动化的软件开发流程。

  • 微服务架构:容器技术非常适合微服务架构,每个微服务可以打包成一个独立的容器,独立开发、测试和部署,提高系统的可伸缩性和容错性。

  • 云计算:云服务提供商可以利用容器技术为用户提供更高效、灵活的计算资源,用户可以根据自己的需求快速创建和管理容器化的应用。

4.Docker核心概念

  • 镜像(Image):容器的 “模板”,包含运行应用所需的完整文件系统和配置。

  • 容器(Container):镜像的 “实例”,是动态运行的进程,可被创建、启动、停止、删除。

  • Docker Engine:运行和管理容器的核心引擎。

  • Docker Hub:公共镜像仓库,可共享或获取现成镜像。

二.Docker安装

1.本安装方式使用阿里的软件仓库

关闭系统防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's=enforcing/=disabled/=' /etc/selinux/config

 下载Docker的repo文件

curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 替换仓库地址

sed -i 's/$releasever/8/g' /etc/yum.repos.d/docker-ce.repo

sed -i 's/$basearch/x86_64/g' /etc/yum.repos.d/docker-ce.repo

 更新索引文件并安装Docker

dnf clean all
dnf makecache
dnf -y install docker-ce

添加国内镜像站

mkdir /etc/docker/
cat>/etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech","https://docker.hlmirror.com"]
}

开启Docker服务

systemctl daemon-reload
systemctl restart docker
systemctl enable docker
docker version

 优化内核参数

vim /etc/sysctl.conf 
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
sysctl -p

2.Docker镜像操作

获取镜像

[root@localhost ~]# docker pull nginx:1.24.0

   docker pull 是 Docker 里的一个关键命令,其主要功能是从 Docker 镜像仓库(默认是 Docker Hub)中拉取镜像到本地 Docker 主机 

查看镜像信息

[root@localhost ~]# docker images

     docker images 是 Docker 中一个基础且常用的命令,主要用于列出本地 Docker 主机上的镜像信息。docker images 命令会列出本地 Docker 主机上所有可用的镜像,展示镜像的基本信息,帮助用户了解本地镜像的存储情况,包括镜像的仓库名、标签、镜像 ID、创建时间和大小等。 

查看镜像的详细信息

[root@localhost ~]# docker inspect c15

   docker inspect 是 Docker 中一个非常实用的命令,它用于返回 Docker 对象(如容器、镜像、网络、卷等)的底层详细信息,这些信息以 JSON 格式展示,方便用户深入了解 Docker 对象的配置和状态。

修改镜像标签(老名字+新名字)

[root@localhost ~]# docker tag nginx1.24.0 nginx:v1
[root@localhost ~]# docker images

   在 Docker 中,docker tag 命令用于为现有的 Docker 镜像添加一个新的标签(tag)。标签本质上是镜像的一个别名,它可以让你更方便地引用和管理镜像,同时也有助于区分不同版本或用途的镜像。 

删除镜像

(1)用镜像名删除

[root@localhost ~]# docker rmi nginx:v1

(2) 用ID删除

[root@localhost ~]# docker rmi c15 

 存出镜像和载入镜像

(1)导入

[root@localhost ~]# docker save -o nginx nginx:1.24.0

   docker save 命令用于将一个或多个 Docker 镜像保存为一个 tar 归档文件,这在需要将镜像传输到其他 Docker 环境(如离线环境)时非常有用。

(2)导入

[root@localhost ~]# docker load<nginx

 3.Docker容器操作

创建容器

[root@localhost ~]# docker create -it centos:7

    docker create 是 Docker 中的一个重要命令,它的主要作用是基于指定的镜像创建一个新的容器,但并不立即启动该容器。 

查看所有的容器

[root@localhost ~]# docker create -it centos:7

  docker create 是 Docker 中的一个重要命令,它的主要作用是基于指定的镜像创建一个新的容器,但并不立即启动该容器。

容器的运行

[root@localhost ~]# docker start 5a

  docker start 是 Docker 中用于启动已创建但处于停止状态容器的命令。docker start 命令的主要作用是将之前使用 docker create 创建好但处于停止状态的容器,或者之前已经停止运行的容器重新启动起来。它会重新初始化容器的运行环境,加载相关资源,让容器内的进程继续执行。 

利用容器执行命令

[root@localhost ~]# docker run centos:7 /usr/bin/bash -c "ls /root"

    docker run 是 Docker 中最常用的命令之一,它的主要功能是基于指定的镜像创建并启动一个新的容器。

在启动容器时持续在后台运行

[root@localhost ~]# docker run -dit centos:7 /bin/bash

容器的终止 

[root@localhost ~]# docker stop b18 

    docker stop 命令用于优雅地停止一个或多个正在运行的 Docker 容器。docker stop 命令的主要作用是向正在运行的容器内的主进程发送终止信号,让容器内的应用程序有机会正常关闭和清理资源,而不是像 docker kill 那样直接强制终止容器。这有助于避免数据丢失或损坏,保证应用程序的正常关闭流程。 

容器导出

[root@localhost ~]# docker export 03f > centos7 

   docker export 命令用于将一个运行中的或已停止的 Docker 容器的文件系统内容导出为一个 tar归档文件。

容器导入生成镜像

[root@localhost ~]# docker import centos7 centos7:test
[root@localhost ~]# docker images

 容器删除

[root@localhost ~]# docker rm 7f

   docker rm 是 Docker 中用于删除容器的基础命令。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87980.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第2章,[标签 Win32] :匈牙利标记法

专栏导航 上一篇&#xff1a;第2章&#xff0c;[标签 Win32] &#xff1a;Windows 数据类型 回到目录 下一篇&#xff1a;第2章&#xff0c;[标签 Win32] &#xff1a;兼容 ASCII 字符与宽字符的 Windows 函数调用 本节前言 在初学编程的时候&#xff0c;我们给变量命令的…

从深度学习的角度看自动驾驶

从深度学习的角度看自动驾驶 A Survey of Autonomous Driving from a Deep Learning Perspective 我们探讨了深度学习在自主驾驶中的关键模块&#xff0c;例如感知&#xff0c;预测&#xff0c;规划以及控制。我们研究了自主系统的体系结构&#xff0c;分析了如何从模块化&…

java+vue+SpringBoo基于Hadoop的物品租赁系统(程序+数据库+报告+部署教程+答辩指导)

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿ppt部署教程代码讲解代码时间修改工具 技术实现 开发语言&#xff1a;后端&#xff1a;Java 前端&#xff1a;vue框架&#xff1a;springboot数据库&#xff1a;mysql 开发工具 JDK版本&#xff1a;JDK1.8 数…

【文献笔记】Automatic Chain of Thought Prompting in Large Language Models

Automatic Chain of Thought Prompting in Large Language Models 原文代码&#xff1a;https://github.com/amazon-research/auto-cot 标题翻译&#xff1a;大规模语言模型中的自动思维链提示 1. 内容介绍 在提示词中提供思考步骤被称为思维链&#xff08;CoT&#xff09;&…

【Behavior Tree】-- 行为树AI逻辑实现- Unity 游戏引擎实现

行为树简易敌人AI 前言&#xff1a; 有些天没更新新文章了&#xff0c;主要是最近科一有些头疼&#xff0c;而且最近琢磨这个行为树代码有些难受&#xff0c;但是终于熬出头了&#xff0c;MonoGame的系列会继续更新的&#xff0c;今天不说别的就说困扰我两三天的行为树 有限状态…

百度大模型开源,俩条命令、本地启动

百度大模型开源 本地启动手册 安装依赖&#xff1a; python -m pip install paddlepaddle-gpu3.1.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/python -m pip install fastdeploy-gpu -i https://www.paddlepaddle.org.cn/packages/stable/fastdeploy-gpu-80_…

rabbitMQ读取不到ThreadLocal消息的bug

rabbitMQ读取不到ThreadLocal消息的bug 当使用消息队列时&#xff0c;监听队列不会运行到主线程上&#xff0c;线程消息之间是不会共享的&#xff0c;故属于主线程的ThreadLocal就读取不到数据的值 主线程名字&#xff1a;main使用消息队列的线程名字&#xff1a;ntContainer#2…

IDEA Maven报错 无法解析 com.taobao:parent:pom:1.0.1【100%解决 此类型问题】

IDEA Maven报错 无法解析com.taobao:parent:pom:1.0.1【100%解决 此类型问题】 报错日志 PS D:\Learn_Materials\IDEA_WorkSpace\Demo\spring_test_demo> mvn clean install -U [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered whi…

函数-1-字符串函数

函数-1-字符串函数字符串函数函数语法字符串函数的使用字符串函数语法案例演示实战练习字符串函数 函数 函数是一段可以直接被另一端程序调用的程序或代码 语法 SELECT 函数名(参数名)大家可能会有那么一点点疑惑, 为什么执行函数还需要加上SELECT语句? 总结一下, 因为SEL…

打破AI落地困局:易路iBuilder的“垂直深耕+开箱即用”破壁之道

中国企业的数字化转型已步入深水区&#xff0c;人力资源管理作为企业核心竞争力的关键引擎&#xff0c;正经历从“信息化”向“智能化”的范式跃迁。在这场以AI为驱动的组织效能革命中&#xff0c;​​易路人力资源科技​​凭借前瞻性的“软件AI服务”战略&#xff0c;推出国内…

Higress离线部署

1.前提条件检查docker和docker compose是否已经具备 [roothost151 ~]# docker -v Docker version 26.1.4, build 5650f9b [roothost151 ~]# docker composeUsage: docker compose [OPTIONS] COMMANDDefine and run multi-container applications with DockerOptions:--all-res…

利用AI技术快速提升图片编辑效率的方法

通过更换背景或进行其他创意编辑&#xff0c;可以为图片赋予新的生命力和视觉效果&#xff0c;使得创意表达更加自由灵活。这款AI抠图工具堪称强大&#xff0c;依托先进的阿尔法通道技术&#xff0c;能够精准、自然地实现图像抠取与背景更换。操作也非常简单&#xff0c;只需将…

Wend看源码-RAGFlow(上)

前言 最近在github上搜罗Rag相关项目的时候&#xff0c;我根据star 搜索到了目前star 最高的一些RAG 项目 &#xff0c;其中稳居榜首的就是RAGFlow。 RAG stars:>1000 language:Python pushed:>2025-01-01 github RAG 相关项目搜索结果 为了系统性的学习RAG 技术栈&#…

LangChain实现RAG检索增强

1:启动vllm的openai兼容server&#xff1a; export VLLM_USE_MODELSCOPETrue python -m vllm.entrypoints.openai.api_server --model qwen/Qwen-7B-Chat-Int4 --trust-remote-code -q gptq --dtype float16 --gpu-memory-utilization 0.6 2:构建向量数据库 from langchain_…

Redis基础(6):SpringDataRedis

SpringDataRedis简介 SpringData是Spring中专门进行数据操作的模块&#xff0c;包含了对于各种数据库的集成。其中对Redis的集成模块叫做SpringDataRedis&#xff08;官网地址&#xff1a;Spring Data Redis&#xff09;。其最核心的特点就是提供了不同Redis客户端的整合&…

B. Shrinking Array/缩小数组

B. Shrinking Array让我们称一个数组 b 为 i 美丽 &#xff0c;如果它至少包含两个元素&#xff0c;并且存在一个位置 |bi−bi1|≤1 使得 |x| (其中 x 是 #10# #11# 的绝对值)。给定一个数组 a &#xff0c;只要它至少包含两个元素&#xff0c;你就可以执行以下操作&#xff1a…

【学习笔记】Linux系统中SSH服务安全配置

一、背景知识 以ubuntu为例&#xff0c;查看ssh服务是否安全并配置&#xff0c;执行 ssh -V ssh的配置文件路径&#xff1a;/etc/ssh/sshd_config 二、SSH服务配置文件 1.端口和监听设置 Port 22 含义&#xff1a;指定SSH服务监听的端口号&#xff08;默认是22&#xff09…

FastAPI + Tortoise-ORM + Aerich 实现数据库迁移管理(MySQL 实践)

在 FastAPI 项目中&#xff0c;Tortoise-ORM 是一个轻量的异步 ORM 框架&#xff0c;适用于 async/await 场景。结合数据库迁移工具 Aerich&#xff0c;可以优雅地管理数据库表结构演进&#xff0c;本文将通过完整流程演示如何在 MySQL 环境下使用。&#x1f4e6; 一、环境准备…

7.7日 实验03-Spark批处理开发(2)

使用Spark处理数据文件检查数据检查$DATA_EXERCISE/activations里的数据&#xff0c;每个XML文件包含了客户在指定月份活跃的设备数据。拷贝数据到HDFS的/dw目录样本数据示例&#xff1a;<activations><activation timestamp"1225499258" type"phone&q…

C语言可变参数感悟

#include <stdio.h> #include <stdarg.h> #if 1 /* *在C语言中&#xff0c;可变参函数是指参数数量不固定的函数&#xff0c;比如printf\scanf *可变参函数的语法&#xff1a; *返回类型 函数名&#xff08;固定函数&#xff0c;.....) { //函数体 } *1、包含头文件…