简介:Docker 第一课基础知识点整理,适合课后复习,包含 Docker 概念、安装、镜像容器原理、docker run 命令详解、MySQL/Nginx 容器示例。
一、Docker 是什么
Docker 是快速构建、运行、管理应用的运维工具,主要用于项目部署。 后端开发人员也需要参与开发环境部署。
传统部署痛点
在没有 Docker 之前,部署项目一般依靠 Linux 脚本、手动安装依赖,整个部署流程繁琐,环境容易出现 "本地能跑,服务器跑不起来" 的问题。 Docker 可以实现一键部署应用。
二、Docker 学习路线
- Docker 基础概念
- 项目容器化部署
三、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 账号密码为 123mysql:指定使用 mysql 镜像启动容器
执行命令后,虚拟机客户端即可连接使用,MySQL 环境一键部署完成。
五、核心概念:镜像 & 容器
- 镜像(image) 使用 Docker 安装应用时,Docker 会自动搜索、下载镜像。 镜像里面包含:应用程序本身 + 运行所需环境、配置、系统函数库。
- 容器(container) Docker 运行镜像的时候,会创建一个隔离的运行环境,这个隔离环境就是容器。 一个镜像可以多次启动,生成多个独立容器。
- 镜像仓库 Docker Hub,Docker 官方镜像仓库,存放大量现成可直接运行的镜像。
- 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
课后复习小结
- Docker 解决传统部署环境复杂、环境不一致问题,实现一键部署。
- 镜像:模板 ;容器:镜像运行起来的隔离实例;一个镜像可生成多个容器。
- docker run 核心:创建 + 启动容器,
-p端口映射、-e环境变量、-d后台运行。 - 容器网络隔离,外部访问必须做端口映射。