Docker入门基础知识(一)

docker的概述: 用于快速构建,运行,管理应用的工具

回忆大学Linux上课老师教安装mysql

大概的命令有这些:

查看本机是否安装mysql或者mariadb

如果有就先卸载掉,如果没有直接进行下面的安装

安装前还需要到mysql的官网上找到linux对应发行版的mysql安装包文件

上传到虚拟机中,并解压缩,然后下载安装

总的来说就是: 命令太多我记不住,安装步骤太复杂容易出错,安装包太多我不知道咋下载

docker就是终结一切混乱的神兵利器

这只承载了集装箱的鲸鱼将彻底改变传统应用安装管理等的方式

如果在本机已经安装了docker的情况下,只需要一行命令即可成功安装mysql

复制代码
docker run -d --name mysql  -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123 mysql

我们不妨就以虚拟机部署mysql作为案例来引入docker的使用,然后再深入了解其背后的原理

先停掉虚拟机中的mysql(如果有安装的前提下),确保本机已经安装了docker,且网络开通正常工作的前提下,执行下面的命令即可安装mysql

复制代码
docker run -d \
    --name mysql \
    -p 3306:3306
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=123 \
  mysql

当我们利用docker安装应用时,docker会自动帮助我们搜索并下载应用镜像(image). 镜像不仅仅包含应用本身,还包含其运行所需要的运行环境,配置以及依赖和函数库等. docker会在运行镜像时创建一个隔离环境,称之为容器(container)

所谓的镜像仓库就是存储和管理各种各样的镜像的仓库,docker官方维护了一个公共仓库https://hub.docker.com/

可以看到docker具体的工作流程如下

  • Docker 是 C/S 架构,客户端发命令,守护进程做实际操作;
  • docker run 的核心流程:客户端请求 → 守护进程查本地镜像 → 无则拉取远程镜像 → 基于镜像创建启动容器 → 容器运行;
  • 一个镜像对应多个容器,核心是通过端口映射(或其他配置)实现容器间的独立隔离。
  1. 客户端发起命令

  2. 守护进程检查本地镜像

  3. 从远程镜像仓库拉取镜像

  4. 基于镜像创建并启动容器

  5. 容器运行与客户端交互

在这里我们解读一下文章最开始使用docker run 命令启动mysql容器的用法

docker run 就是创建并运行一个容器, -d 是让容器在后台运行

--name 给容器起个名字,必须是唯一的

-p 3306:3306 设置端口映射

-e KEY=VALUE 是设置环境变量

mysql 指定运行的镜像的名字

这里的端口映射工作逻辑如下

容器默认有独立的网络命名空间,外部无法直接访问容器内的应用,通过 -p 宿主机端口:容器端口,相当于给容器开了一个 "对外访问的窗口",宿主机的端口会转发到容器的对应端口。

相关推荐
鹤落晴春几秒前
【Linux复习】管理SELinux安全性
linux·运维·服务器
梦梦代码精23 分钟前
2026年PHP开源商城系统实测对比:架构、多商户、商用授权,谁才是真·省心?
vue.js·docker·架构·开源·代码规范
AI智图坊24 分钟前
多件装组合SKU图的批量生产效率分析:从PS手工到AI自动化的工作流改造
大数据·运维·人工智能·gpt·ai作画·自动化·aigc
鹤落晴春3 小时前
【K8s】Pod调度、configMaps
云原生·容器·kubernetes
极客先躯4 小时前
高级java每日一道面试题-2026年02月02日-实战篇[Docker]-如何实现容器的持久化存储?
docker·容器·面试宝典·持久化·存储·韵味·java高级面试题
云计算磊哥@5 小时前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
天天进步20155 小时前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
My is 李豆5 小时前
CentOS 7 安装 Docker 完整教程(含 docker-compose 插件)
docker·eureka·centos
极客先躯6 小时前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
Java面试题总结6 小时前
Linux-Ubantu-贴士-apt的地盘
linux·运维·服务器