首页 > 其他分享 >Dockerfile和Docker_Compose的区别

Dockerfile和Docker_Compose的区别

时间:2023-08-23 14:12:57浏览次数:40  
标签:Compose run 镜像 Docker Dockerfile docker

最近在学习docker相关的知识,接触到Dockerfile和Docker_Compose,那么这2个东西有啥区别呢,特此记录一下。

一、什么是dockerfile?

1、Dockerfile是一个包含用于组合映像的命令的文本文档
2、docker build命令用于从Dockerfile构建映像
3、可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile
4、指定要使用的Dockerfile路径;docker build -f /path/to/a/Dockerfile
5、docker build -f dockerfile 文件名 -t 镜像名:[tag] .

二、Dockerfile的基本结构

1、基础镜像信息
2、维护者信息
3、镜像操作指令
4、容器启动时执行指令
5、#为 Dockerfile 中的注释

三、Dockerfile文件说明
1、Docker以从上到下的顺序运行Dockerfile的指令
2、为了指定基本映像,第一条指令必须是FROM
3、可以在Docker文件中使用RUN,CMD,FROM,EXPOSE,ENV等指令

四、通过以上的几点,我们总结如下:

Dockerfile 是一个文本文件,用于定义 Docker 镜像的构建规则。它包含了一系列的指令,用于指定容器运行时的操作系统、软件环境、应用程序、文件拷贝等信息。通过 Dockerfile,可以构建出一个自定义的 Docker 镜像,使得该镜像能够在任意支持 Docker 的主机上运行。

Dockerfile 更多地用于创建和定制 Docker 镜像。

镜像这些我们都准备好了,例如有nginx、php-fpm、redis、java等等,一个项目的运行,往往需要很多服务共同来完成,传统方式上,我们这样来启动服务

docker run -it -d -p 80:80 nginx
docker run -it -d -p 9000:9000 php-fpm
docker run -it -d -p xxx:xxx xxx
......

有多少服务就run几次,然后依次来检查每个服务是否都正常启动,如果服务较少,这样操作当然是没有任何问题的,如果是游戏开服,几十几百个服,每个服需要运行一个服务,或者是其他更复杂的项目,有几十几百个服务呢,咱们也一个个去run吗?以及后期的维护,咱也一个个去弄吗?那估计要吐血的,这个时候就轮到docker compose上场了。

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。通过 Docker Compose,可以使用 YAML 文件来描述应用程序的服务、网络、存储等资源,并使用一个命令来启动、停止、重启和管理整个应用程序。在一个 Docker Compose 的配置文件中,可以定义多个 Docker 容器,每个容器都可以使用自定义的 Docker 镜像,并可以指定容器之间的依赖关系和通信方式。

Docker Compose 更多地用于管理多个 Docker 容器,让它们能够协同工作来构建一个完整的应用程序。

 

标签:Compose,run,镜像,Docker,Dockerfile,docker
From: https://www.cnblogs.com/firstlady/p/17651448.html

相关文章

  • Docker
    1.介绍开源应用容器引擎,基于Go语言开发,可以打包应用以及依赖到一个轻量级可移植的容器中,完全使用沙箱机制,相互之间不会有任何接口,容器性能开销极低。2.容器对软件和其依赖的标准化打包应用之间相互隔离共享同一个OSKernel实现DevOps的最佳解决方案3.组成主机Host:安装......
  • Node.Js 13.4.18 Docker 部署后无法访问
    将项目Next.js升级后,通过Docker部署无法访问到服务,通过dockerlogsid检查日志,发现没有任何反应,甚至一个访问请求都没看到。一开始怀疑是打包的问题,将Docker容器中的服务文件全部拉下来,在本地跑..诶嘿~正常运行...排除打包问题检查启动日志:readystartedserveron......
  • linux(centos与ubuntu)安装docker
    首先确保系统更新yumupdate#centosapt-getupdate#ubuntucentos安装dockeryuminstall-yyum-utilsyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repoyuminstall-ydocker-cedocker-ce-cli--allowerasingubuntu安装d......
  • Docker开启和关闭容器自启动
    启动容器增加–-restart=always参数设置自启动dockerrun--restart=always--nametest--net=host-dtest//test为镜像河容器名称已启动的容器设置自启动dockerupdate–-restart=always容器ID或者容器名称已启动的容器关闭自启动dockerupdate--restart=no容器ID或者容......
  • Docker的inspect命令查看容器详细信息--九五小庞
    很久之前建的一个容器,今天发现找不到端口信息了。。。这都是小问题,执行dockerinspect命令可以查看容器的详细信息,推荐!不用进入容器内部,命令格式为:dockerinspect[想要查看信息的容器id或者容器名字]运行这个命令会返回一个json字符串,显示这个docker容器的全部内容。—————......
  • docker部署MySQL、tomcat
    一、安装MySQL1、dockerpullmysql:latest拉取镜像dockersearchmysql命令将返回与关键字“mysql”相关的Docker镜像列表。在结果中,你将看到镜像名称、描述、星级评分、官方/认证标志以及其他相关信息。结果包括了许多不同的MySQL镜像,包括官方支持的和由社区维护的镜像。你......
  • docker 开机自启
    1、使用dockerrun命令运行时增加--restart=always参数即可2、使用docker-compose命令运行时在yml文件中,需要自启动的service下增加restart:always项目即可3、已运行的容器修改其自启动策略执行命令:dockerupdate--restart=always容器名或容器ID—————......
  • dockerfile netcore 示例
    #syntax=docker/dockerfile:1FROMmcr.microsoft.com/dotnet/sdk:7.0asbuild-envWORKDIR/appCOPY..RUNdotnetrestoreRUNdotnetpublish-cRelease-o/publishFROMmcr.microsoft.com/dotnet/aspnet:7.0asruntimeWORKDIR/srcCOPY--from=build......
  • docker run指令
    dockerrun指定的参数-d后台运行容器,并返回容器ID,此时不会进入交互界面,如果想要进入交互界面请加-i和-t参数。如果用了-d参数未进入容器的时候,在想进入容器,指令:dockerexec-it容器名称/bin/bash-i以交互模式运行容器,通常与-t同时使用-t为容器重新分配一个伪......
  • docker 常用命令
    一、容器命令0.编排文件生成容器dockerbuild--tagdotnet-docker.1.启动容器dockerstart[容器名/ID]2.停止容器dockerstop[容器名/ID]3.运行容器dockerrun[容器名/ID]链接:dockerrun指令详解4.列出运行中/所有容器dockerps......