首页 > 其他分享 >十一、Docker入门系列--Docker-Compose模板命令

十一、Docker入门系列--Docker-Compose模板命令

时间:2022-12-07 09:46:30浏览次数:56  
标签:Compose 系列 入门 -- redis 镜像 Docker

十一、Docker入门系列--Docker-Compose模板命令

一、Docker入门系列--Docker 简介
二、Docker入门系列--Docker安装
三、Docker入门系列--Docker常用命令
四、Docker入门系列--Docker镜像
五、Docker入门系列--Docker容器数据卷
六、Docker入门系列--DockerFlie解析
七、Docker入门系列--使用DockerFlie自定义Tomcat镜像
八、Docker入门系列--Docker常用安装
九、Docker入门系列--本地镜像发布到阿里云
十、Docker入门系列--Docker-Compose简介和安装
十一、Docker入门系列--Docker-Compose模板命令
十二、Docker入门系列--Docker-Compose常用命令
十三、Docker入门系列--Portainer可视化Docker
十四、Docker入门系列--Docker搭建部署SpringCloud微服务项目Demo


docker-compose.yml文件模版介绍

模板文件是使用 Compose 的核心,涉及到的指令关键字也比较多。默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式。

version: "3"

services:
  webapp:
    image: mysql
    ports:
      - "80:80"
    volumes:
      - "/data"

YAML文件中的image代表使用Docker仓库中已经存在的镜像,我们之前使用都需要先构建一个镜像,然后在文件里面指定这个镜像才可以运行。

这样比较麻烦,有一个命令比较方便

Build

表示:通过Docker-compose在启动容器之前根据dockerfile构建镜像,然后根据镜像启动容器

version: '3'
services:

  webapp:
    build: ./dir

使用 context 指令指定 Dockerfile 所在文件夹的路径

使用 dockerfile 指令指定 Dockerfile 文件名,如果不指定文件名默认就是寻找Dockerfile

command

覆盖容器启动后默认执行的命令

command: echo "hello world"

container_name

指定容器名称。默认将会使用 项目名称_服务名称_序号 这样的格式

container_name: mysqltest

不推荐使用

depends_on

解决容器的依赖、启动先后的问题。以下例子中会先启动 mysql再启动 tomcat

version: '3'

services:
  web:
    build: ./
    depends_on:
      - mysql
      - tomcat

  tomcat:
    image: tomcat01

  mysql:
    image: mysql01

web服务会等待mysql、tomcat服务启动的差不多了再启动,不会等到被依赖服务完全启动再启动

environment

设置环境变量。可以使用数组或字典两种格式

env_file

跟environment作用类似,也是设置环境变量,不过这个是指定文件的形式

env_file: .env

env_file:
  - ./common.env  #文件的路径
  - ./apps/web.env
  - /opt/secrets.env

相比environment把环境比阿里直接写在yaml中安全一点

expose

暴露端口

本来在Dockerfile中暴露端口,这个命令意思可以不用在Dockerfile中填写端口,一般不用

image

指定为镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉取这个镜像,相当于docker run images(镜像名)

networks

用来指定启动的容器使用的网桥(网络),相当于docker run --network

每个容器指定同一个网桥,那么只要进入一个容器的内部,使用另外一个容器的ip就可以访问到

docker network ls #查看Docker中的网桥

查看网桥的详细信息

ports

暴露宿主端口:容器端口的信息,相当于docker run -p

volumes

暴露宿主路径:容器路径的信息,相当于docker run -v

restart

指定容器退出后的重启策略为始终重启。该命令对保持服务始终运行十分有效,在生产环境中推荐配置为 always 或者 unless-stopped

相当于docker run --restart=always

总结

掌握以上命令之后,如果需要在文件中跑一个es服务,自己写命令可能一点头绪都没有,可以按照这种运行命令改编

docker run -p 6379:6379 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf  -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

改编之后YAML文件

redis:
   image: redis:5.6
   ports: 
    -3306:3306
   volumes: 
    - /mydata/redis/data:/data
    - /mydata/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
   environment:
    - /usr/local/etc/redis/redis.conf --appendonly yes

标签:Compose,系列,入门,--,redis,镜像,Docker
From: https://www.cnblogs.com/xiangningdeguang/p/16962165.html

相关文章

  • SQL 语句中 WHERE 1=1 的作用
    你是否曾在SELECT查询中看到过WHERE1=1条件。我在许多不同的查询和许多SQL引擎中都有看过。这条件显然意味着WHERETRUE,所以它只是返回与没有WHERE子句时相同的......
  • 十二、Docker入门系列--Docker-Compose常用命令
    十二、Docker入门系列--Docker-Compose常用命令一、Docker入门系列--Docker简介二、Docker入门系列--Docker安装三、Docker入门系列--Docker常用命令四、Docker入门系......
  • 南开河北BGP物理机租用供应
    这就给开源服务器带来了机会。开源服务器是指内置开源系统的服务器。由于服务器的硬件架构标准相对统一,可以运行免费的开源系统。对于建设大型数据中心,规模化部署海量服务......
  • 有状态软件如何在 k8s 上快速扩容甚至自动扩容
    概述在传统的虚机/物理机环境里,如果我们想要对一个有状态应用扩容,我们需要做哪些步骤?申请虚机/物理机安装依赖下载安装包按规范配置主机名,hosts配置网络:包......
  • 使用sheet.js导出数据
    下面是核心代码letexportColDataletexportColHead//excel工作簿全局变量letworkBook=null;//excelsheet全局......
  • 题目:剑指Offer58-II.左旋转字符串
    题目:剑指Offer58-II.左旋转字符串力扣题目链接(opensnewwindow)字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操......
  • 十三、Docker入门系列--Portainer可视化Docker
    十三、Docker入门系列--Portainer可视化Docker一、Docker入门系列--Docker简介二、Docker入门系列--Docker安装三、Docker入门系列--Docker常用命令四、Docker入门系......
  • 实验6 模板类和文件IO
    实验任务3task3_1.cpp#include<iostream>#include<fstream>#include<array>#defineN5intmain(){usingnamespacestd;array<int,N>x{97,98,......
  • 前端react面试题指北
    在调用setState之后发生了什么状态合并,触发调和:setState函数之后,会将传入的参数对象与当前的状态合并,然后出发调用过程根据新的状态构建虚拟dom树经过调和过程,rea......
  • 【教程】喜马拉雅如何下载mp3? (教你喜马拉雅下载mp3格式文件音频)
    喜马拉雅用声音连接了全中国数亿人,为内容创作者和用户搭建了共同成长的平台。一方面,创作者用声音分享自己的故事、观点、知识,并因此收获粉丝、成就感或IP增值、商业变现的......