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:

查看容器:

查看镜像:

访问页面:

相关推荐
武子康1 小时前
Java-72 深入浅出 RPC Dubbo 上手 生产者模块详解
java·spring boot·分布式·后端·rpc·dubbo·nio
_殊途1 小时前
《Java HashMap底层原理全解析(源码+性能+面试)》
java·数据结构·算法
椰椰椰耶2 小时前
【Spring】拦截器详解
java·后端·spring
没有bug.的程序员3 小时前
JAVA面试宝典 - 《MyBatis 进阶:插件开发与二级缓存》
java·面试·mybatis
没有羊的王K5 小时前
SSM框架学习——day1
java·学习
又菜又爱coding5 小时前
安装Keycloak并启动服务(macOS)
java·keycloak
AI视觉网奇5 小时前
git 访问 github
运维·开发语言·docker
不知道叫什么呀5 小时前
【C】vector和array的区别
java·c语言·开发语言·aigc
G_whang5 小时前
jenkins使用Jenkinsfile部署springboot+docker项目
spring boot·docker·jenkins
wan_da_ren6 小时前
JVM监控及诊断工具-GUI篇
java·开发语言·jvm·后端