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:

查看容器:

查看镜像:

访问页面:

相关推荐
2401_8574396912 分钟前
SpringBoot框架在资产管理中的应用
java·spring boot·后端
怀旧66613 分钟前
spring boot 项目配置https服务
java·spring boot·后端·学习·个人开发·1024程序员节
李老头探索15 分钟前
Java面试之Java中实现多线程有几种方法
java·开发语言·面试
芒果披萨20 分钟前
Filter和Listener
java·filter
qq_49244844625 分钟前
Java实现App自动化(Appium Demo)
java
阿华的代码王国33 分钟前
【SpringMVC】——Cookie和Session机制
java·后端·spring·cookie·session·会话
铁锤妹妹头发多1 小时前
新手用docker真**难受
运维·docker·容器
找了一圈尾巴1 小时前
前后端交互通用排序策略
java·交互
哎呦没3 小时前
SpringBoot框架下的资产管理自动化
java·spring boot·后端
m0_571957585 小时前
Java | Leetcode Java题解之第543题二叉树的直径
java·leetcode·题解