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

posted @ 2025-08-12 09:21  big4mart  阅读(5)  评论(0)    收藏  举报