Docker容器引擎(5)

目录

一.docker-compose

docker-compose的三大概念:

yaml文件格式:

json文件格式:

[docker-compose 配置模板文件常用的字段:](#docker-compose 配置模板文件常用的字段:)

[二.Docker Compose 环境安装:](#二.Docker Compose 环境安装:)

查看版本:

[准备好nginx 的dockerfile的文件:](#准备好nginx 的dockerfile的文件:)

编写配置文件docker-compose.yml:

创建并启动容器:


一.docker-compose

传统的容器管理:Dockerfile文件 --> 手动执行 docker build 一个个构建镜像 -> 手动执行 docker run 一个个创建启动容器

编排管理容器:Dockerfile文件 --> 在 docker compose 配置文件里定义好容器启动参数和依赖关系 -> 执行 docker-compose 命令指定配置文件一次性的自动完成所有镜像的构建和容器的创建启动

docker-compose 是一个可以实现在单机上对容器集群编排管理的工具。

使用python开发的,能运行docker的平台也都能用docker-compose编排管理容器。

本质就是在yaml格式的docker-compose配置模板文件里定义多个服务容器的启动参数和依赖关系,并使用docker-compose命令根据指定配置模板文件的配置来启动和管理容器集群。

docker-compose的三大概念:

项目project -> 包含一个或多个服务service -> 包含一个或多个容器container的镜像、端口映射、环境变量、依赖关系等启动参数

默认使用项目的目录名作为project的项目名,支持使用 -p 或 --project-name 来指定项目名称

项目目录里要包含一个 docker-compose 配置模板文件,默认为 docker-compose.yml,支持使用 -f 或 --file 来指定项目的配置模板文件

在配置模板文件里要包含一个或多个服务容器的配置,每个服务要包含容器的名称、镜像、映射端口、挂载点、网络模式、依赖关系等容器启动的配置参数

yaml文件格式:

文件名格式通常是以 .yaml .yml 为后缀,用 空格缩进 表示字段的层级关系,特性:可读性高,易于人类管理。

json文件格式:

文件名格式通常是以 .json 为后缀,用 大括号{} 表示字段的层级关系,每层字段除了最后一个字段都要用逗号,结尾,特性:易于api接口解析。

docker-compose 配置模板文件常用的字段:

image 使用本地镜像或从仓库拉取镜像创建容器

build: 使用dockerfile现场构建镜像创建容器

context:

dockerfile:

command 指定容器启动命令,会覆盖镜像中的CMD指令

container_name --name

environment -e --env

network_mode --network

network 指定加入的网络和IP --IP

ports -p

volumes -v

volumes_from --volumes-from ,版本3不支持

hostname -h --hostname

sysctls --sysctl

links --link

privileged --privileged

restart --restart

depends_on 指定有依赖关系的容器

二.Docker Compose 环境安装:

我们接着Docker容器引擎(3)dockerfile的服务器接着做,compose启动nginx:

查看版本:

Docker Compose 常用命令:

字段 描述

build 重新构建服务

ps 列出容器

up 创建和启动容器

exec 在容器里面执行命令

scale 指定一个服务容器启动数量

top 显示容器进程

logs 查看容器输出

down 删除容器、网络、数据卷和镜像

stop/start/restart 停止/启动/重启服务

准备好nginx 的dockerfile的文件:
编写配置文件docker-compose.yml:

查看镜像:

查看容器:

可以添加到变量中:

创建并启动容器:

docker-compose up -d

查看镜像,自动创建:

查看容器,启动状态:

docker ps -a

docker-compose ps

关闭docker-compose:

查看容器:

查看镜像:

访问页面:

相关推荐
鲸沉梦落2 分钟前
Java中的Stream
java
yihuiComeOn31 分钟前
[源码系列:手写Spring] AOP第二节:JDK动态代理 - 当AOP遇见动态代理的浪漫邂逅
java·后端·spring
Porunarufu1 小时前
Java·关于List
java·开发语言
2501_941142131 小时前
基于 Rust 构建高性能区块链节点与智能合约执行系统的架构设计与工程实践分析
eureka
靠沿1 小时前
Java数据结构初阶——Collection、List的介绍与ArrayList
java·数据结构·list
程序猿小蒜2 小时前
基于springboot的的学生干部管理系统开发与设计
java·前端·spring boot·后端·spring
q***56382 小时前
Spring容器初始化扩展点:ApplicationContextInitializer
java·后端·spring
q***51892 小时前
SpringCloud系列教程:微服务的未来(十四)网关登录校验、自定义过滤器GlobalFilter、GatawayFilter
java·spring cloud·微服务
go__Ahead2 小时前
【Java】线程池源码解析
java·juc
wyhwust2 小时前
数组----插入一个数到有序数列中
java·数据结构·算法