ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

6. docker-compose

6. docker-compose docker-compose一、docker-compose1、安装docker-compose2、docker-compose使用流程2.1 编写compose文件2.2 创建2.3 删除二、docker-compose常用指令1、整体结构2、常用选项三、docker-compose示例一、docker-compose单机版的容器编排工具作用: 批量管理容器的1、安装docker-compose[rootlaobideng ~]# mv docker-compose /usr/local/bin/[rootlaobideng ~]# chmod ax /usr/local/bin/docker-compose[rootlaobideng ~]#[rootlaobideng ~]# docker-compose versiondocker-composeversion1.29.0, build 07737305 docker-py version:5.0.0 CPython version:3.7.10 OpenSSL version: OpenSSL1.1.0l10Sep20192、docker-compose使用流程2.1 编写compose文件[rootlaobideng compose]# cat docker-compose.yamlversion:3services:test_nginx:image:nginx:1.18test_redis:image:redis2.2 创建[rootlaobideng compose]# docker-compose up -d2.3 删除[rootlaobideng compose]# docker-compose down二、docker-compose常用指令https://docs.docker.com/compose/compose-file/07-volumes/1、整体结构version:3services:服务名称/容器名称:容器选项networks:volumes:version指定docker-compose和docker对接的API版本services要创建的服务信息容器networks指定要创建的网络信息自定义网络volumes指定要创建的数据卷信息 持久化存储2、常用选项指定镜像名称image:镜像名称持久化存储volumes:-物理目录:容器目录-物理目录:容器目录指定容器自动运行的命令version:3services:test:image:centos:7command:-sleep-3600定义容器通信别名links:-容器名称:别名发布容器服务ports:-物理机端口:容器端口说明容器中的服务端口expose:-端口定义环境变量environment:key:valuekey:value定义容器依赖关系depends_on:-容器名称-容器名称指定网络模式network_mode:host定义容器的副本数deploy:replicas:3资源限制resources:limits:// 硬限制cpus:2memory:50Mreservations:// 软限制cpus:1memory:20M健康状态检查healthcheck:test:[CMD,curl,-f,http://localhost]interval:10stimeout:10sretries:3start_period:40s三、docker-compose示例[rootmartin-host tomcatCompose]# lsdocker-compose.yaml nginx.conf project.war[rootmartin-host tomcatCompose]# cat docker-compose.yamlversion:3services: tomcat_project_01: image: tomcat volumes: - /opt/tomcatCompose/project.war:/usr/local/tomcat/webapps/project.war expose: -8080deploy: resources: limits: cpus:2memory: 2G reservations: cpus:1memory: 1G healthcheck: test:[CMD,curl,-f,http://localhost:8080]interval: 10s timeout: 10s retries:3start_period: 30s tomcat_project_02: image: tomcat volumes: - /opt/tomcatCompose/project.war:/usr/local/tomcat/webapps/project.war expose: -8080deploy: resources: limits: cpus:2memory: 2G reservations: cpus:1memory: 1G healthcheck: test:[CMD,curl,-f,http://localhost:8080]interval: 10s timeout: 10s retries:3start_period: 30s tomcat_nginx: image: nginx:1.18 expose: -80ports: -80:80 links: - tomcat_project_01:tomcat_project_01 - tomcat_project_02:tomcat_project_02 volumes: - /opt/tomcatCompose/nginx.conf:/etc/nginx/conf.d/default.conf depends_on: - tomcat_project_01 - tomcat_project_02 deploy: resources: limits: cpus:2memory: 2G reservations: cpus:1memory: 1G[rootmartin-host tomcatCompose]# cat nginx.confupstream tomcat{server tomcat_project_01:8080;server tomcat_project_02:8080;}server{listen80;server_name localhost;location /{proxy_pass http://tomcat/project/;}}
返回列表