Doker - docker-compose使用

一、什么是 docker compose

compose 项目是docker官方的开源项目,负责实现对docker容器集群的快速编排。

二、compose 定位

compose 定位是定义和运行多个 docker 容器的应用,同事可以对多个容器进行编排

三、compose 核心概念

服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例(服务可以存在多个)
项目(project):由一组关联的应用容器组成的一个完整的业务单元,在 docker-compose.yml 文件中定义

四、compose的使用

1.创建一个docker-compose.yml文件

touch docker-compose.yml

2.编写docker-compose.yml

vim docker-compose.yml
#编写版本
version:"3.0"
#编写服务
services:
    tomcat:        #服务名唯一
        image:tomcat:8.0-jre8        #创建当前这个服务使用的镜像是谁
        ports:
            - 8080:8080
  tomcat01:   
    image:tomcat:8.0-jre8       
    ports:
      - 8081:8080

参数介绍

image(指定为jing'x镜像名称或镜像ID。如果镜像本地不存在,compose将会尝试拉取这个镜像)
image: ubuntu
image: orchardup/postgresql
image: a4bc65fd

networks(配置容器内连接的网络)
version: "3"
services:
    some-service:
        networks:
            - some-network
            - other-network
networks:
    some-network:
    other-network:

ports(暴露端口信息。使用宿主端口:容器端口(HOST:CONTAINER)格式,或者仅仅指定容器的端口(宿主将会随机选择端口)都可以。)
ports:
    - "3000"
    - "8000:8000"
    - "49100:22"
    - "127.0.0.1:8001:8001"
注意:当使用 HOST:CONTAINER 格式来映射端口时,如果你使用的容器端口小于60并且没放到引号里,可能会得到错误的结果,因为 YAML 会自动解析 xx:yy 这种数字格式为60进制。为避免出现这种问题,建议数字串都采用引号包括起来的字符串格式。

volumes(数据卷所挂载路径设置。可以设置为宿主机路径(HOST:CONTAINER)或者数据卷名称(VOLUME:CONTAINER),并且可以设置访问模式(HOST:CONTAINER:ro)。该指令中路径支持相对路径)
volumes:
    - /var/lib/mysql
    - cache/:/tmp/cache
    - ~/configs:/etc/configs/:ro
如果路径为数据卷名称,必须在文件中配置数据卷
version: "3"
services:
    my_src:
    image: mysql:8.0
    volumes:
        - mysql_data:/var/lib/mysql
volumes:
    mysql_data:

模板

version: ""3.2        #上来写一个版本号

services:         #用的哪个服务
    tomcat:        #服务名称
    image: tomcat:8.0-jre8        #使用哪个镜像
    ports:        #用来完成host与容器的端口映射关系
        - "8080:8080"
    volumes:        #完成宿主机与容器中目录数据卷共享
        #- /root/apps:/usr/local/tomcat/webapps #使用自定义路径映射
        - tomcatwebapps:/usr/local/tomcat/webapps        #需要在外部声明

volumes:        #声明上面服务所使用的自动创建的卷名
    tomcatwebapps:        #声明指令的卷名    compose自动创建该卷名但是会在之前加入项目名
        external:    使用自定义卷名
            false        #true确定使用指定卷名 注意:一旦使用外部自定义卷名启动服务之前必须手动创建

3.运行docker-compose

docker-compose up  #启动这个项目的所有服务,必须保证运行命令的目录存在docker-compose.yml
  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江江江江_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值