一、概念
1.什么是docker
Docker 是一个开源的应用容器化平台,用 OS 级轻量虚拟化技术,把应用 + 依赖 + 配置打包成可移植容器,实现 "一次构建,到处运行",解决环境不一致、部署慢、资源浪费等问题。
2.Docker用在什么地方
-
- 开发环境:统一 "开发 - 本地" 环境,避免 "我这能跑"
开发阶段最常见的问题是 "本地代码能跑,同事电脑 / 测试环境跑不通",根源是依赖(如 Python 版本、数据库版本、系统库)不一致;
-
- 测试环境:快速搭建 / 销毁测试环境,提升测试效率
测试阶段需要频繁切换 "不同版本的软件""不同依赖组合"(如测试兼容性、回归测试),传统方式搭建环境耗时且易出错;
-
- 生产环境:简化部署流程,实现 "一次打包,到处运行"
生产环境的核心需求是 "稳定、高效、可重复部署",传统部署(如手动复制文件、配置环境变量)易出错且难以追溯;
-
- 微服务架构:支撑微服务的 "独立部署、弹性伸缩"
微服务架构将一个大型应用拆分为多个独立的小服务(如用户服务、订单服务、支付服务),每个服务需要独立部署、扩容,Docker 是微服务的 "最佳载体";
-
- 运维与自动化:简化 "环境管理",适配 CI/CD 流水线
Docker 是持续集成 / 持续部署(CI/CD) 流水线的核心组件,能让 "代码提交→自动测试→自动部署" 的流程更顺畅。
3.为什么要使用Docker
-
- 环境一致性:彻底解决 "环境不一致" 问题;
-
- 环境搭建 / 销毁:秒级完成,效率拉满;
-
- 部署标准化:一次打包,到处运行;
-
- 轻量级 + 强隔离:资源省一半,互不干扰;
-
- 适配自动化:支撑 CI/CD,实现 "代码提交即部署";
-
- 适配微服务:微服务架构的 "最佳载体"
4.如何使用docker
1)docker镜像
查看,下载,生成容器,定制
2)Docker容器
创建,停止,删除,启动
3)Docker仓库:
公有仓库:github,阿里云,清华云
私有仓库:公司内部自己的仓库
二、常用命令
1.使用docker镜像
1)获取镜像
docker pull+镜像名称

2)搜寻镜像
①网址查询
②命令查询
docker search + 镜像名称

3)查看镜像信息
docker image

4)添加镜像标签,变为特定的标签
docker tag 原始镜像名:版本号 自定义的镜像名称:自定义的新标签(可以是版本、环境、备注等)
eg. docker tag ubuntu:18.04 myubuntu:5b

5)查看镜像详细信息
Docker inspect 镜像ID/名称

6)删除和清理镜像
①删除镜像(强制删除指定的镜像)
docker rmi -f +镜像id/名称

②清理镜像(批量清理无用的镜像)
docker image prune

7)上传镜像到仓库
docker save -o 输出文件路径/文件名.tar 镜像名:标签

docker load -i 镜像归档文件.tar

2.操作docker容器
1)查看正在运行的容器
docker ps

docker ps -a 查看包括没有运行的所有容器
2)创建并启动容器
docker run -itd 镜像ID/名称 bash


3)创建容器(不会被启动)
Docker create -it 镜像ID/名字

4)启动容器
docker start(restart重启/pause 挂起) 容器ID/名字

5)进入容器
①常规进入
docker exec -it 容器ID bash(环境)

②单次运行,退出后容器会被关闭
docker attach 容器ID

6)删除容器
docker rm -f 容器ID/名字

7)停止容器
docker stop 容器ID/名字

8)导入和导出容器
①导出
docker export -o /保存位置/文件名 容器名

②导入
docker import 保存位置/要导入的文件名称 要设置的名字
eg. docker import /docker_ps/httpd_5b.tar httpd_5b

9)查看容器
docker inspect 容器ID/名字

10)其他
①复制文件
docker cp 本地位置 容器ID:/容器位置

②查看文件变更
docker diff 容器ID/名称 列出一个容器的文件系统中被修改、添加或删除的文件和目录

③端口映射
docker port 容器ID/名称 列出一个运行中的容器的端口映射详情

④更新配置(开机自启动)
docker update --restart always 容器ID

11)构建镜像的三种方法
docker commit 容器ID/名称 新镜像名称

①基于已有的容器创建
②基于本地模版创建
③基于dockerfile创建
3.搭建docker仓库
集中存放镜像的地方,分为公有和私有
- docker hub:公共镜像市场,官方提供 https://hub.docker.com 需要翻墙使用
- 第三方镜像市场:阿里云,网易云,腾讯云
- 本地私有仓库
1)下载私库镜像
docker pull registry


2)创建私有仓库容器并运行
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:latest
docker run docker核心命令,用于创建并启动一个新的 Docker 容器
-d 后台运行
-p 5000:5000 端口映射 宿主机端口:容器内端口
-v /opt/data/registry:/var/lib/registry 数据卷挂载 宿主机目录:容器内目录

3)添加镜像标签
docker tag nginx:1.28 localhost:5000/nginx
docker tag # Docker 核心命令:用于给镜像打标签(创建别名)
nginx:1.28 # 源镜像(被打标签的镜像):格式为 镜像名:版本号
localhost:5000/nginx # 目标标签(新别名):格式为 仓库地址/镜像名

4)上传
docker push localhost:5000/nginx:latest

5)测试是否能下载
①删除原有镜像
docker rmi -f localhost:5000/nginx:latest

②从私库下载
docker pull localhost:5000/nginx:latest

6)设置私库开机自启动
①查看私库容器ID
docker ps

②设置开机自启动
docker update --restart=always +容器ID

