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

《Docker 零基础入门到实战:容器化部署如此简单,运维效率直接拉满》

相信你对封面图上的「Docker 鲸鱼」图标并不陌生 —— 它正是解决「开发环境能跑,生产环境崩了」的容器化神器!Docker 通过打包应用与依赖到轻量容器,实现了「一次构建,到处运行」,彻底消除环境不一致的痛点。本文从 Docker 核心概念(镜像 / 容器 / 仓库)讲起,手把手教你安装配置、构建自定义镜像、Docker Compose 编排多容器,最后附上 SpringBoot 项目容器化部署的完整实战,让运维小白也能快速上手容器技术!

为什么使用docker

之前都是用Linux+centos(Iso镜像)得到一个可以使用的linux系统

然后配置数据库 ,nginx 等

这种方式部署慢,成本高,造成了资源的浪费,并且难于迁移和扩展

并且之前的虚拟化技术(vmware,kvm)的目标都是一台完整的计算机

而我们的需求仅仅是想使用多个应用程序,让他们相互独立,而不是得到一台完整的系统

docker使用容器技术对进程进行封装隔离

Docker 简介

Docker 是一种容器化技术,允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。容器与虚拟机不同,它直接运行在宿主机的操作系统上,共享系统内核,因此更加高效和快速。

安装 Docker

  1. Windows/macOS

    • 下载 Docker Desktop(官网链接),安装后启动。
    • 确保启用 WSL 2(Windows)或 HyperKit(macOS)。
  2. Linux(Ubuntu)

    sudo apt update
    sudo apt install docker.io
    sudo systemctl start docker
    sudo systemctl enable docker
    
    • 验证安装:docker --version

基本概念

  • 镜像(Image):只读模板,用于创建容器。
  • 容器(Container):镜像的运行实例,包含应用程序和运行环境。
  • Dockerfile:文本文件,定义如何构建镜像。

举例:程序员在写好代码之后,要交给测试人员代码,此时测试人员没有环境和依赖,所以程序员会开发dockerfile脚本,完成的效果就是将代码,依赖和环境全部打包为一个镜像文件(image),测试人员直接运行这个镜像就可以运行

容器

1. 容器内没有自己的内核,也没有对硬件进行虚拟,Docker引擎容器仅包含应用程序及其依赖项,他在主机操作系统的用户控件中作为一个独立的进程运行,与其他容器共享内核,因此容器中的程序直接运行在宿主机上,能够使用宿主机最大的硬件资源

2. 一个宿主机可以启动100+的容器数量,并且启动一个容器的时间只需要1S

拉取第一个容器

  1. 拉取官方测试镜像:
    docker pull hello-world
    
  2. 运行容器:
    docker run hello-world
    
    • 输出 Hello from Docker! 表示成功。

构建自定义镜像

  1. 创建 Dockerfile 文件:
    FROM alpine:latest
    CMD echo "Hello, Docker!"
    
  2. 构建镜像:
    docker build -t my-image .
    
  3. 运行容器:
    docker run my-image
    

管理容器和镜像

  • 查看运行中的容器:docker ps
  • 查看所有容器:docker ps -a
  • 停止容器:docker stop <容器ID>
  • 删除容器:docker rm <容器ID>
  • 列出镜像:docker images
  • 删除镜像:docker rmi <镜像名>

数据持久化(卷挂载)

  • 将主机目录挂载到容器:
    docker run -v /host/path:/container/path my-image
    

网络配置

  • 映射容器端口到主机:
    docker run -p 8080:80 nginx
    
    • 访问 http://localhost:8080 可看到 Nginx 默认页面。

常用命令速查

命令功能示例
docker run启动一个新的容器并运行命令docker run -d ubuntu
docker ps列出当前正在运行的容器docker ps
docker ps -a列出所有容器(包括已停止的容器)docker ps -a
docker search寻找镜像docker search 镜像名
docker build使用 Dockerfile 构建镜像docker build -t my-image .
docker images列出本地存储的所有镜像docker images
docker pull从 Docker 仓库拉取镜像docker pull ubuntu
docker push将镜像推送到 Docker 仓库docker push my-image
docker stop停止一个或多个容器docker stop container_name
docker start启动已停止的容器docker start container_name
docker restart重启一个容器docker restart container_name
docker rmi删除一个或多个镜像docker rmi my-image
docker logs查看容器的日志docker logs container_name
docker version显示 Docker 客户端和守护进程的版本信息docker version
docker  pause暂停容器中的所有进程docker pause my_container
docker create 创建一个新的容易,但不会启动它docker create ubuntu
docker run -it启动一个容器并进入终端docker run -it ubuntu bash
  • -i: 交互式操作。
  • -t: 终端。

要退出终端,直接输入 exit:

ubuntu 镜像。

/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
docker exec -it进入在后台运行的容器docker exec -it ubuntu bash
http://www.dtcms.com/a/366773.html

相关文章:

  • 【有鹿机器人自述】我在社区的365天:扫地、卖萌、治愈人心
  • Android集成OpenCV4实例
  • Java 与 Docker 的最佳实践
  • docker更新jar包,懒人执行脚本
  • MaxKB4j智能体平台 Docker Compose 快速部署教程
  • 飞算JavaAI全面解析:重塑Java开发流程的智能引擎
  • 【数学建模】用Matlab玩转图论:从画图到求最短路径
  • 想要给文档加密?2025年顶尖文件加密软件分享
  • C++并发编程-23. 线程间切分任务的方法
  • uniapp vue页面传参到webview.nvue页面的html或者另一vue中
  • Web应用:返回图片URL
  • Python快速入门专业版(一):Windows/macOS/Linux 系统环境搭建(附常见报错解决)
  • 【连接器专题】案例:带屏蔽膜FPC出现概率性短路,真是供应商的锅?
  • EasyVoice与cpolar:构建私域有声平台的本地化方案
  • Spring线程池ThreadPoolTaskExecutor‌详解
  • 隔空盗刷、AI钓鱼、代理劫持…金融黑产竟进化至此?
  • Elasticsearch 8 中 Nested 数据类型的使用方法
  • 【iOS】 懒加载
  • 一文吃透 CSS 伪类:从「鼠标悬停」到「斑马纹表格」的 30 个实战场景
  • 中值滤波、方框滤波、高斯滤波、均值滤波、膨胀、腐蚀、开运算、闭运算
  • HTML图片标签及路径详解
  • Python开篇撬动未来的万能钥匙 从入门到架构的全链路指南
  • 工厂模式总结
  • C++知识
  • C 盘清理技巧分享:释放磁盘空间,提升系统性能
  • 将 PDF 转换为 TIFF 图片:简单有效的 Java 教程
  • 数据传输,数据解析与写数据库
  • django全国小米su7的行情查询系统(代码+数据库+LW)
  • 阿瓦隆 A15 Pro 221TH/S:SHA-256 算力与高效能耗
  • 大模型部署全攻略:Docker+FastAPI+Nginx搭建高可用AI服务