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

Docker

Docker

Docker快速入门

用Docker下载应用时 会自动搜索下载镜像(image) 镜像不止包含本身 还包含应用所需的环境 配置 系统函数库 并且Docker会在运行的时候创建一个隔离环境 称为容器(container)
这些镜像都放在了镜像仓库

命令解读

docker run 创建并运行一个容器 -d是让容器在后台运行
--name mysql 给容器起个名字 必须唯一
-p 3306:3306 设置端口映射 就是让容器内的端口映射到外部主机的端口
-e KEY=VALUE 设置环境变量
mysql 指定运行的镜像的名字

镜像命名规范
一般由两部分组成 [repository]:[tag]
repository是镜像名 tag是版本名 mysql:5.7
不指定tag默认就是latest 自动代表最新版本

Docker基础

常见命令

  • docker pull 从镜像仓库拉取到本地仓库
  • docker push 从本地推到镜像仓库
  • docker build 创建自定义镜像
  • docker save 把镜像保存成压缩包 docker save -o nginx.tar nginx:latest
  • docker load 拷取压缩包到本地镜像仓库 docker load -i nginx.tar -q q是指不输出内容拷取
  • docker images 查看本地镜像
  • docker rmi 删除本地镜像
  • docker run 创建一个容器并启动镜像 不要重复创建容器
  • docker stop 停掉一个镜像 注意 所有的镜像是实质都是一个进程 只是停掉了这个进程 容器还在
  • docker start 开启一个镜像进程
  • docker ps 查看容器内的镜像状态
  • docker rm 删除容器内的镜像
  • docker exec 进入到容器内部 docker exec -it mysql bash -it是可交互的运行方式 bash是以命令行方式显示
  • docker log 查看容器日志 docker log -f nginx 持续查看日志

docker数据卷挂载

数据卷(volume)是一个虚拟目录 是容器内目录和宿主机目录之间的桥梁

数据卷就是一个逻辑上的文件 然后创建之后可以跟宿主机也就是虚拟机下的volumes内的文件进行映射 数据卷是逻辑虚拟的 但是虚拟机下的是真实的 然后让容器内的文件和数据卷中的文件进行挂载
也就是相关联 然后docker就会执行双向映射 改动任意一方 都会映射到另一方

挂载

  • 执行docker run时 使用-v 数据卷:容器内目录 就可以完成挂载 必须在run命令挂载 如果容器存在 要删掉重新创建
  • 创建容器时 数据卷不存在会自动创建数据卷

本地目录挂载

由容器创建时就自动挂载的卷叫做匿名卷 名字会很长
因此可以做本地挂载

  • 本地挂载同样在docker run命令时 加上-v 本地目录:容器内目录 完成本地目录挂载
  • 需要注意的是一定要用绝对路径 相对路径会放在volume中当作数据卷

自定义镜像

镜像就是包含了应用程序 程序运行函数库 运行配置的文件包 构建镜像就是把上述文件打包

上述的并不会全部打成一个包 而是会分成一去打包 然后依赖的基础函数库 环境称为基础镜像

Dockerfile
dockerfile就是一个文本文件 包含各种来构建镜像的指令

编好了dockerfile就可以来构建镜像
docker build -t myImage:1.0 .

  • -t给镜像起名
  • "." 是指定dockerfile所在目录 当前目录就是.

网络

默认情况下 所有容器都是以bridge方式连接到docker的一个虚拟网桥上

但是ip有可能会随着重启或者关机变化 因此就要自定义网络 而加入自定义网络就可以直接通过容器名互相访问

项目部署 DockerCompose

Docker Compose

docker compose通过一个单独的docker-compose.yaml模板文件 来定义一组相关联的应用容器 来实现多个相关联的docker容器快速部署

想要完成部署写好yaml模板之后 docker compose命令格式如下
docker compose [OPTIONS] [COMMAND]

docker compose up -d启动docker compose
docker compose down 关闭docker compose

http://www.aitangshan.cn/news/576.html

相关文章:

  • 【IEEE出版】第三届电力、电网和储能国际学术会议(PGES 2025)
  • 记录下MySQL的分区表
  • 从 “JSON 字段适配噩梦” 到 “Spring Boot 优雅解决方案”,你只差这一篇
  • 【IEEE出版】第四届电力系统与电力工程国际学术会议(PSPE 2025)
  • 题解:P10299 [CCC 2024 S5] Chocolate Bar Partition
  • 关闭Ollama开机启动项
  • MySQL 根据一个表的字段值,更新另一个表的字段
  • DeepCompare文件深度对比软件:智能同步滚动与对比视图管理功能完全指南
  • 书单
  • 2025 款潘通色卡 PS/AI 插件推荐:解锁高效配色新体验
  • Dubbo源码—1.服务发布的主要流程
  • 剑指offer-20、包含min函数的栈
  • CF1456E XOR-ranges 题解
  • QueryCon 2019:osquery的重大转折点 - 技术治理与社区共建
  • 基于Transformer的百万级文本分类技术
  • 详细介绍:网络基础1-11综合实验(eNSP):vlan/DHCP/Web/HTTP/动态PAT/静态NAT
  • Omnissa Horizon Windows OS Optimization Tool 2506 - Windows 系统映像优化工具
  • docker 容器化部署 vLLM 启动大模型
  • App Linking 助力应用场景创新,操作步骤立省 60%
  • ChatGpt 5系列文章1——编码与智能体
  • Cisco Catalyst 9800-CL IOS XE 17.18.1 发布,新增功能简介
  • Cisco Modeling Labs (CML) 2.9.0 - 网络仿真工具
  • Omnissa App Volumes 4, version 2506 - 实时应用程序交付系统
  • Omnissa Dynamic Environment Manager 2506 - 个性化动态 Windows 桌面环境管理
  • AES 加密模式演进:从 ECB、CBC 到 GCM 的 C# 深度实践
  • Cisco Catalyst 9800 WLC IOS XE 17.18.1 发布,新增功能简介
  • 详细介绍:python办自动化--读取邮箱中特定的邮件,并下载特定的附件
  • 微软开源的 MCP 教程「GitHub 热点速览」
  • 题解:qoj10322 Matching Query
  • ZR Summer 2025 CD ACM暨 ZR Summer 2025 C 游记