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:

查看容器:

查看镜像:

访问页面:

相关推荐
JP-Destiny15 分钟前
docker-安装redis
java·redis·docker
文青小兵16 分钟前
Linux云计算——docker 网络和部分挂载(二)
linux·docker·云计算
牟同學18 分钟前
Hermes Agent Docker 离线部署完整指南
docker·容器·eureka·hermes
weixin_BYSJ198718 分钟前
基于Django的非物质文化遗产管理系统设计与实现(源码 + 文档)98950
java·javascript·spring boot·python·django·flask·php
小张小张爱学习23 分钟前
JVM高频面试题
java·jvm
轻刀快马23 分钟前
重塑 Java 世界的两根支柱:穿透 Spring IoC 与 AOP 的架构哲学
java·spring·架构
云烟成雨TD26 分钟前
Spring AI Alibaba 1.x 系列【68】Graph SSE 流式输出
java·人工智能·spring
蜀道山老天师27 分钟前
Docker安装配置全教程(含银河麒麟服务器部署+镜像加速)
运维·docker·容器
:12128 分钟前
Java泛型
java·开发语言
愿天垂怜28 分钟前
【C++脚手架】etcd 的介绍与使用
java·linux·服务器·c语言·c++·中间件·etcd