【docker】#1 | Docker 初识

简介:Docker 第一课基础知识点整理,适合课后复习,包含 Docker 概念、安装、镜像容器原理、docker run 命令详解、MySQL/Nginx 容器示例。

一、Docker 是什么

Docker 是快速构建、运行、管理应用的运维工具,主要用于项目部署。 后端开发人员也需要参与开发环境部署。

传统部署痛点

在没有 Docker 之前,部署项目一般依靠 Linux 脚本、手动安装依赖,整个部署流程繁琐,环境容易出现 "本地能跑,服务器跑不起来" 的问题。 Docker 可以实现一键部署应用。

二、Docker 学习路线

  1. Docker 基础概念
  2. 项目容器化部署

三、Docker 安装(Linux 环境)

Docker 安装在 Linux 系统中。

复制代码
# 启动docker
systemctl start docker
# 停止docker
systemctl stop docker

推荐配置阿里云镜像加速,提升镜像下载速度,加载对应配置文件生效。

四、实战:Docker 部署 MySQL

前提:虚拟机已安装 Docker、网络正常,先关闭宿主机原有 MySQL 服务。 执行命令创建并启动 MySQL 容器:

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

参数详解

  • -d:后台守护进程运行容器
  • --name mysql:给容器命名为 mysql,容器名称全局唯一
  • -p 3306:3306:端口映射,宿主机 3306 端口映射到容器内部 3306 端口
  • -e TZ=Asia/Shanghai:设置时区为上海,解决数据库时间不一致问题
  • -e MYSQL_ROOT_PASSWORD=123:设置 root 账号密码为 123
  • mysql:指定使用 mysql 镜像启动容器

执行命令后,虚拟机客户端即可连接使用,MySQL 环境一键部署完成。

五、核心概念:镜像 & 容器

  1. 镜像(image) 使用 Docker 安装应用时,Docker 会自动搜索、下载镜像。 镜像里面包含:应用程序本身 + 运行所需环境、配置、系统函数库。
  2. 容器(container) Docker 运行镜像的时候,会创建一个隔离的运行环境,这个隔离环境就是容器。 一个镜像可以多次启动,生成多个独立容器。
  3. 镜像仓库 Docker Hub,Docker 官方镜像仓库,存放大量现成可直接运行的镜像。
  4. Docker 后台服务docker daemon:Docker 守护进程(docker server),docker run 命令就是和该守护进程交互来创建容器。

六、docker run 完整命令解读

复制代码
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  mysql
  • docker run:创建并运行一个容器
  • -d:后台运行容器
  • --name:自定义容器名称,名称必须唯一
  • -p 宿主机端口:容器内端口:端口映射

容器内部环境默认隔离,外部无法直接访问容器内部端口;通过端口映射,访问宿主机端口,流量自动转发到容器内部端口。

  • -e KEY=VALUE:设置容器内环境变量
  • mysql:指定镜像名称,完整格式 [仓库名]:[版本tag],省略 tag 默认拉取 latest 最新版。

七、示例:Nginx 容器启动命令

复制代码
docker run -d \
--name nginx \
-p 80:80 \
nginx

课后复习小结

  1. Docker 解决传统部署环境复杂、环境不一致问题,实现一键部署。
  2. 镜像:模板 ;容器:镜像运行起来的隔离实例;一个镜像可生成多个容器。
  3. docker run 核心:创建 + 启动容器,-p端口映射、-e环境变量、-d后台运行。
  4. 容器网络隔离,外部访问必须做端口映射。
相关推荐
岁月宁静2 分钟前
一个 AI 项目从本地到上线,要经过哪些步骤?全流程讲清楚
python·docker·agent
奇树谦21 分钟前
Windows CMD 下 mc 运维指南:SeaweedFS 安装验收与 MinIO 数据迁移
运维·windows
刚入门的大一新生21 分钟前
Linux-信号
linux·运维·服务器
车软学堂26 分钟前
CANoe自动化:跑起第一个测试用例
运维·车载系统·自动化·汽车·测试用例
L0208242 小时前
Kubernetes Ingress|CNI 网络模型|Calico 网络策略|Pod 调度器完整实战教程
运维·网络·云原生·容器·kubernetes
吴声子夜歌4 小时前
Kubernetes权威指南——Kubernetes安装配置指南(网络配置)
网络·容器·kubernetes
考拉讲支付4 小时前
延迟分账 / 核销分账的技术实现方案:服务完成后再分钱,到底怎么设计?
大数据·运维·人工智能·微信小程序·小程序·系统架构
闲云野鹤在人间4 小时前
Kubernetes Pod Scheduler 详解
云原生·容器·kubernetes