Docker

发布于:2025-07-30 ⋅ 阅读:(26) ⋅ 点赞:(0)

镜像和容器

当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会在运行镜像时创建一个隔离环境,称为容器(container)

镜像仓库: 存储和管理镜像的平台,Docker官方维护了一个公共仓库:Docker Hub。

这是用docker安装MySQL的命令

  • docker run:  创建并运行一个容器,-d  是让容器在后台运行
  • --name mysql:给容器起个名字,必须唯一
  • -p 3306:3306:设置端口映射(冒号前是本机端口,后是容器端口)
  • -e KEY=VALUE:是设置环境变量
  • mysql:指定运行的镜像的名字

 镜像命名规范

  • 镜像名称一般分两部分组成:[repository]:[tag]。
  • 其中repository就是镜像名
  • taq是镜像的版本在没有指定tag时,默认是latest,代表最新版本的镜像

常见命令 

Docker最常见的命令就是操作镜像、容器的命令,详见官方文档: https://docs.docker.com/

  • docker pull nginx                     拉取镜像(不指定版本默认为latest即最新版)
  • docker images                          查看本地镜像
  • docker save [-o 镜像保存地址] nginx:latest          保存镜像到指定地址
  • docker rmi nginx:latest                   删除镜像
  • docker load -i nginx.tar [-q]            读取镜像,-i后跟文件地址,-q 加上后不输出东西
  • docker run -d --name nginx -p 80:80 nginx       创建并运行镜像容器(选项解释上边有)
  • docker ps -a    查看镜像容器状态(默认为展示启动的容器,加上-a展示所有)
  • docker stop nginx              停止容器
  • docker stsrt nginx              启动容器
  • docker logs [-f] nginx          查看容器日志(加上 -f 持续跟踪日志)
  • docker exec -it nginx [bash]      进入容器内部,-it 提供一个终端,容器名称后要填进入容器后用什么命令交互,bash 指用命令行交互
  • docker rm nginx [-f]          删除容器,加 -f 指强制删除,不加的话不能直接删除运行中容器

小 技 巧:设置命令别名

在 root/.bashrc 里面进行添加

执行下面命令使别名生效 

 source /root/.bashrc

数据卷挂载

容器内只支持一些基础的需要的命令,如果要对容器内文件进行操作是非常不方便的(如对nginx内文件进行修改,但nginx容器不支持编辑器命令),这时就要用到数据卷了。

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

创建数据卷并与容器内某个目录进行挂载后,会在本机 /var/lib/docker/volumes 下面创建对应目录

  • 在执行docker run命令时,使用   -v 数据卷:容器内目录   可以完成数据卷挂载
  • 当创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建数据卷

本地目录挂载

  • 在执行docker run命令时,使用 -v 本地目录:容器内目录 可以完成本地目录挂载
  • 本地目录必须以“/”或"./"开头,如果直接以名称开头,会被识别为数据卷而非本地目录
    • -v mysql:/var/lib/mysql 会被识别为一个数据卷叫mysql
    • -v ./mysql:/var/lib/mysql会被识别为当前目录下的mysql目录

 

网络

使用Linux部署spring boot项目的流程:

  1. 对spring boot项目进行打包并找到 jar 包
  2. 书写 Dockerfire 文件
  3. 把项目 jar 包和 Dockerfire 文件一起传入虚拟机里,然后执行 Dockerfire 文件生成镜像
  4. 为镜像创建容器(可以与其他需要的镜像加入网络,如项目和MySQL加入同一个网络下,使其能相互访问)
  5. 查看容器日志判断是否成功,之后就能跟踪项目进程了

 Dockercompose

Docker Compose 通过一个单独的 docker-compose.yml 模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。

之前的部署方式太 low 了,也不方便,后端、MySQL、前端每个都要单独部署,还有网络也得创建、加入,实操时很容易漏掉东西,这时候就可以用到 Dockercompose 了。


网站公告

今日签到

点亮在社区的每一天
去签到