当前位置: 首页 > news >正文

云原生技术与应用-容器技术技术入门与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.lryc.cn/news/582530.html

相关文章:

  • 【RL+空战】学习记录01:jsbsim 仿真环境初次学习,F16 战机起飞
  • 吃透二分法的模板解法(适合所有类似于二分的算法题)
  • 【OceanBase 诊断调优】—— SQL 查询触发笛卡尔积怎么处理
  • Proface触摸屏编程软件介绍及下载
  • H3初识——入门介绍之常用中间件
  • vue前置知识-end
  • Vue 整合 Vue Flow:从零构建交互式流程图
  • 理解大模型智能体生态:从 Prompt 到 Agent 的完整信息流解析
  • LeetCode 1248.统计优美子数组
  • 【读代码】GLM-4.1V-Thinking:开源多模态推理模型的创新实践
  • 大模型面试:如何解决幻觉问题
  • 【python】pyserial 在windows 下卡住的bug
  • 在PPT的文本框中,解决一打字,英文双引号就变成中文了
  • 4.权重衰减(weight decay)
  • NumPy-随机数生成详解
  • 初识单例模式
  • 【网络安全】服务间身份认证与授权模式
  • 【Flutter】面试记录
  • Next.js 实战笔记 2.0:深入 App Router 高阶特性与布局解构
  • 算法训练营DAY29 第八章 贪心算法 part02
  • ubuntu 操作记录
  • Python语言+pytest框架+allure报告+log日志+yaml文件+mysql断言实现接口自动化框架
  • 机制、形式、周期、内容:算法备案抽检复审政策讲解
  • 探索下一代云存储技术:对象存储、文件存储与块存储的区别与选择
  • 光流 | 当前光流算法还存在哪些缺点及难题?
  • ReactNative【实战系列教程】我的小红书 4 -- 首页(含顶栏tab切换,横向滚动频道,频道编辑弹窗,瀑布流布局列表等)
  • 闲庭信步使用图像验证平台加速FPGA的开发:第五课——HSV转RGB的FPGA实现
  • Java连接Emqx实现订阅发布消息
  • 恒创科技:香港站群服务器做seo站群优化效果如何
  • ReactNative【实战】瀑布流布局列表(含图片自适应、点亮红心动画)