应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

docker compose 基本使用。docker compose发布.net core项目

1634人阅读 2023/10/8 17:33 总访问:5182323 评论:0 收藏:0 手机
分类: docker

docker compose 介绍


通过一个配置文件,可以让系统一键启动所有的运行环境,nodejs,mysql,redis,mongodb 等。

如果开发环境需要多个服务,就需要启动多个 Docker 容器。要连通多个 Docker 容器,就需要 Docker-compose。并且提供了 scale (服务扩容) 的功能。方便多多个容器一键管理。

就算是针对单个容器的更新也不用每次都去执行编译镜像,停止与删除容器,然后重新启动容器这样就有点麻烦了,如果用docker-compose一句话就可以操作了


docker-compose 可以记录你启动容器时候的命令,方便随时修改。而且复杂一点的命令代码可读性也更高。容器之间的依赖关系,比较清晰,比一个一个的手动使用命令启动要清晰很多。其实主要就是方便后期的维护和管理。

docker compose与docker-compose中间有杠和没杠的区别


1、独立安装的Compose,不论是V1还是V2版本,指令都是docker-compose
2、插件安装的Compose,在V2版本,指令是docker compose(中间是空格),新版的docker安装时会自动以插件的形式自动安装docker compose
3、支持同时采用两种方式安装Compose,安装后可以同时使用docker-compose和docker compose

我这里是安装docker的时候自动以插件的形式自动安装docker compose所以使用命令的时候总结不需要加段横线

docker compose 常用命令

查看docker compose 的帮助命令

使用docker compose —help或者docker compose都可以

查看docker compose的版本

  1. docker compose version

docker compose ls

列出所有运行的服务容器

列出所有服务容器(包括未运行的容器)

  1. docker-compose ls -a

docker compose ps

查看docker compose运行的容器,要有运行才能查看到,否者看不到且有相关提示

查看docker compose运行的以及未运行的容器

  1. docker-compose ps -a

启动,构建等常用命令

  1. 构建并启动所有容器,如果镜像存在就重新构建
  2. docker compose up -d --build
  3. 构建并启动指定的容器,如果镜像存在就重新构建
  4. docker compose up -d --build xxx
  5. 启动所有服务
  6. docker compose up -d

docker compose up -d与docker compose up -d —build的区别

docker-compose up -d

docker-compose up -d命令用于启动已定义在docker-compose.yml文件中的服务容器,并以守护进程的方式在后台运行。
具体解释如下:

  • docker-compose: 是一个用于定义和运行多个容器应用的工具。
  • up: 用于创建并启动容器。
  • -d--detach: 表示以守护进程的方式运行容器,即在后台运行,不会阻塞终端。

docker-compose up —build

docker-compose up --build命令用于重新构建并启动服务容器。

具体解释如下:

  • docker-compose: 是一个用于定义和运行多个容器应用的工具。
  • up: 用于创建并启动容器。
  • --build: 表示重新构建容器的镜像。

当你执行docker-compose up --build命令时,docker-compose会解析docker-compose.yml文件,并根据文件中定义的服务配置重新构建容器的镜像。这意味着它会重新执行容器镜像的构建过程,包括下载依赖、安装软件、配置环境等步骤。

两种启动方式的区别总结

  • docker-compose up -d命令用于启动已经存在的服务容器,如果服务容器不存在则会自动创建。-d参数表示以守护进程的方式运行容器。
  • docker-compose up --build命令用于重新构建服务容器。如果服务容器已经存在,该命令会先停止并移除现有的容器,然后重新构建并启动容器。如果服务容器不存在,则会直接构建并启动容器。
  • 总结来说,docker-compose up -d用于启动已经存在的服务容器,而docker-compose up --build用于重新构建并启动服务容器。

docker compose发布.net core项目

docker 发布.net core可以参考:https://www.tnblog.net/aojiancc2/article/details/5030

现在我们使用docker compose就是简化发布的步骤,让原本需要的去执行编译镜像,停止与删除容器,然后重新启动容器,变成一条命令。项目的发布和上传以及dockerfile文件的准备这里就不说了,参考前面给的链接即可。

一:创建与编写好docker-ocmpose.yml文件

可以先使用touch命令创建好docker-ocmpose.yml文件,在使用vim命令添加下面的内容:

  1. version: "3.8"
  2. services:
  3. inquiry_api:
  4. build:
  5. context: ./inquirySysApi
  6. # dockerfile: Dockerfile
  7. image: inquiry_api:latest
  8. container_name: inquiry_api
  9. restart: always
  10. ports:
  11. - "8003:8003"
  12. environment:
  13. - TZ=Asia/Shanghai

配置说明:
inquiry_api 服务名称,可以配多个服务。
container_name 容器名称。
build 构建镜像路径及自定义dockerfile名称(可以不写会找默认的dockerfile文件)。
image 镜像名。
ports 对外暴露的端口(8003)与容器内部端口(8003)。
restart: alway docker启动时或容器挂掉时自动重启。

相关路径说明

我们需要发布的项目的文件在inquirySysApi下,所以上面docker-ocmpose.yml配置的build中context路径是./inquirySysApi,这个需要根据实际情况针对性调整即可,我这里是这样的。

具体的需要编辑成镜像的项目就是在inquirySysApi下,Dockerfile文件也在这个里边

二:执行构建并启动服务容器命令

执行构建并启动服务容器命令

  1. docker compose up -d --build inquiry_api

上面的命令指定了服务名称,也可以不指定直接执行docker compose up -d —build这样就是作用到这个docker-ocmpose.yml下面的所有服务了,这个的示例只有一个服务所以接不接都一样。

如果执行的时候提示容器已经存在了,删除掉就行了,说明以前是直接手动启动的容器,没有通过docker compose去启动容器。

查看运行状态

三:下次在执行发布的时候只需要把项目发布后上传执行一句命令即可

下次在执行发布的时候只需要把项目发布后上传执行一句命令即可,就简化了每次发布都需要的停止删除容器,编译镜像,在启动容器的步骤了

  1. docker compose up -d --build inquiry_api

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

docker compose mysql 主从搭建

mysql 主从搭建目录 简介主从复制的方式 主从复制流程 docker 搭建 文件结构主master从docker compose sql 异常解决恢...

docker compose常用命令 docker compose up -d --build

一、Docker Compose简介Docker Compose是一个用于定义和运行基于Docker的应用程序的工具。通过Compose,可以使用YAML文件来...

c使用unity实现依赖注入二:基本使用

使用Unity实现依赖注入的基本步骤:1:需要创建一个容器2:给容器添加类与类之间的关系(控制反转)3: 在需要的地方从容器里...

c webservice一:基本使用

什么是webserviceWebservie是一种网络服务是一种与语言无关的服务webserver主要作用:1:可以跨平台跨语言访问2:可以做SOA...

jQuery Validate 验证插件 基本使用

插件引用地址:<scriptsrc="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/jquery.validate.min...

Oracle数据库的认识和基本使用

推荐一个Oracle数据库的一个学习网站:http://www.oraclejsq.com/article/010100110.html一、对Oracle数据库的认识1、数据...

tomcat 的基本使用

一、在webapps文件夹下创建一个自己的文件夹二、在自己的文件夹下面放入自己的资源资源类容三、访问(路径为8080+自己的文...

HTTPSession 的基本使用 1

一、常用方法二、获取三、使用1、创建web项目与功能类2-4、另一个功能类5-6、a、b、

百度编辑器基本使用

很简单,把js引用进来,写点代码都搞定了<!DOCTYPEhtml> <html> <head> <metacharset="utf-8...

Collection-迭代器基本使用

1、案例:2、迭代器的删除方法:remove()案例:3、增强for4、小结

yum-基本使用更改yum源 01

一、yum在linux当中,如果我们想要查找,安装,下载或者卸载另外的软件,就需要通过yum来进行操作。英文全称是:Yellow dog ...

Kustomize的基本使用

Kustomize的基本使用[TOC] 什么是 Kustomize?Kustomize允许您自定义原始的、无模板的 YAML 文件以用于多种用途,而原始 Y...

ado.net基本使用sqlhelper简单封装dbhelper简单使用

sqlhelper简单封装 using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Lin...

vue element ui select,下拉列表。数据绑定,基本使用

代码如下: <el-select v-model="chapterID" style="width:266px"> <el-option v-f...

.net Source Generators的基本使用

.net Source Generators的基本使用[TOC] Source Generators简介Source Generators是一项C#编译功能,使C#开发人员能够在编...