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

Docker完全指南:从入门到生产环境实战

一、Docker 基本概念

1. 什么是 Docker?

Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上。

2. 核心概念

镜像(Image):相当于一个 root 文件系统,包含运行应用所需的所有内容

容器(Container):镜像运行时的实体,可以被创建、启动、停止、删除等

仓库(Repository):用来保存镜像的地方,分为公有仓库(Docker Hub)和私有仓库

3.Docker架构

Docker 采用客户端-服务器(C/S)架构,主要包含以下组件:

  • Docker 守护进程(Daemon):长期运行的后台进程,管理容器、镜像、网络等

  • Docker 客户端(CLI):用户与守护进程交互的命令行工具

  • Docker 注册中心(Registry):存储镜像的仓库,如 Docker Hub

4.容器与虚拟机的区别
特性Docker容器传统虚拟机
虚拟化级别操作系统级虚拟化硬件级虚拟化
启动速度秒级分钟级
性能接近原生有较大损耗
系统资源占用低(共享主机内核)高(每个VM独立OS)
隔离性进程级别隔离完全隔离
5.安装验证

docker官网:https://app.docker.com

Linux系统可以直接安装Docker,Windows系统需要下载一个wsl来兼容Linux的一些环境才能进行下载

下载完成后使用 docker--version 来验证是否安装成功,能显示出对应版本说明安装成功了

二、基本操作命令

1.镜像操作

搜索容器: docker search 镜像名称

搜索 MySQL 镜像:docker search mysql,会列出 Docker Hub 上所有可用的 MySQL 相关镜像,官方镜像通常排在第一位。

拉取镜像: docker pull 镜像名称:标签

拉取MySQL 镜像:docker pull mysql:8.0

查看本地镜像: docker images

删除镜像: docker rmi 镜像ID/名称

删除 MySQL 镜像:docker rmi mysql:8.0

2.容器操作

运行容器: docker run [选项] 镜像 [命令]

常用选项:

  • -d:后台运行

  • -p:端口映射(主机端口:容器端口)

  • -v:目录挂载(主机目录:容器目录)

  • --name:为容器指定名称

  • -it:交互式终端

启动mysql容器

查看运行中的容器: docker ps

查看所有容器(包括停止的): docker ps -a

停止容器: docker stop 容器ID/名称

启动已停止的容器: docker start 容器ID/名称

进入运行中的容器: docker exec -it 容器ID或名称 /bin/bash

这样就可以直接进行一些MySQL操作

删除容器: docker rm 容器ID/名称

注意上述命令都可以在docker客户端中点击使用,可以进行搜索,以及对镜像/容器进行一些简易的操作

3.实战操作

本地写完项目,使用docker进行构建并上传到仓库,这样别人可以从docker仓库中获取到对应的项目并启动

首先要先将项目进行打包,然后在项目的根目录下编写Dockerfile 文件

启动构建镜像

但是这样直接启动好像没有指定标签名,会显示为none,可以对于这个none的id来进行重新命名,所以最好还是使用命令行来构建,如果当前在项目根目录下

构建命令是docker build -t 镜像名称:标签 .

如果 Dockerfile 不在当前目录,或需要指定其他文件名: docker build -t my-app:1.0 -f /path/to/Dockerfile .

  • -t:指定镜像名称和标签(格式:name:tag,标签默认为 latest

  • .:表示使用当前目录下的 Dockerfile 文件

  • -f:指定 Dockerfile 的路径。

然后我们可以把我们构建的镜像发布到docker远程仓库上

最后在客户端或者命令行中搜索这个镜像可以进行拉取和运行

拉取结束后可以运行这个容器来进行测试,可以直接在Docker客户端中启动,但是最好使用命令行来启动,这样可以指定端口号等信息

运行项目后,前端访问指定路径,有对应显示说明成功!

4.补充内容
1. 数据卷(Volumes)

数据卷是容器中持久化数据的首选方式:独立于容器的生命周期,可以在容器间共享和重用,支持数据备份、恢复和迁移

创建数据卷:docker volume create my_volume

查看数据卷:docker volume ls

使用数据卷:docker run -v my_volume:/path/in/container ...

2.Docker Compose

用于定义和运行多容器应用的工具:使用YAML文件配置应用服务,一键启动/停止所有服务,支持服务依赖和自动重启

典型使用流程:

  1. 编写docker-compose.yml

  2. 启动服务:docker-compose up -d

  3. 停止服务:docker-compose down

最后说明:本文涉及开发过程中的常用命令以及具体实战操作,安装可以参考:【Docker】初识docker 基本概念及安装使用(巨详细版)-CSDN博客

同时拉取和推送过程中失败多半是网络问题,多试几次即可

http://www.lryc.cn/news/583126.html

相关文章:

  • 将.net应用部署到Linux服务器
  • 深入解析 .NET 泛型:从原理到实战优化
  • Docker 搭建 Harbor 私有仓库
  • 使用 Docker 搭建 Go Web 应用开发环境——AI教你学Docker
  • mac m1安装大模型工具vllm
  • Vue的watch和React的useEffect
  • “AI 曼哈顿计划”:科技竞赛还是人类挑战?
  • 电商销量第一,贝锐向日葵智能远控硬件背后的软硬结合战略
  • Mac mini 高性价比扩容 + Crossover 游戏实测 全流程手册
  • Python-FAQ-单例模式
  • 深入理解图像二值化:从静态图像到视频流实时处理
  • 一天两道力扣(3)
  • 计蒜客T3473丑数、Leetcode2401最长优雅子数组、Leetcode167两数之和、Leetcode581最短无序连续子数组
  • 开源链动2+1模式与AI智能名片融合下的S2B2C商城小程序源码:重构大零售时代新生态
  • 【工具】Pycharm隐藏文件类型或目录
  • Hive MetaStore的实现和优化
  • AI+智慧园区 | 事件处置自动化——大模型重构园区治理逻辑
  • 向量空间 线性代数
  • 两张图片对比clip功能
  • 在 PyCharm 中安装并配置 Node.js 的指南
  • 整合Spring、Spring MVC与MyBatis:构建高效Java Web应用
  • Linux的 `test`命令(或等价中括号写法 `[空格expression空格]`)的用法详解. 笔记250709
  • 自制明信片DIY:让心意更有温度
  • python Gui界面小白入门学习
  • OpenCV图像增强秘籍:高通滤波与特效艺术
  • 学习open62541 --- [79] 在docker中运行open62541工程
  • SpringCloud系列 - xxl-job 分布式任务调度 (七)
  • Docker高级管理
  • Wireshark抓包实验之TCP连接
  • 使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建