ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker Compose

2021-11-02 20:32:43  阅读:169  来源: 互联网

标签:容器 compose 8080 web redis Compose Docker docker


1. 简介

  • 单独的容器没什么意义,有意义的是容器编排!Dockerfile build run 手动操作,单个容器!

  • Docker Compose 来轻松高效的管理容器。定义、运行多个容器。

  • 官方文档:https://docs.docker.com/compose/install/

理解
1、Compose是Docker官方的开源项目。需要单独安装!

2、Dockerfile让程序可以在任何地方运行。Web 服务, redis, mysql,nginx....多个容器,挨个手动去启动管理太麻烦了!!

3、Compose的重要的概念

  • 服务services: 容器,应用(例如,单个的web,redis,mysql....)

  • 项目project:一组关联的容器。(例如, 博客: web, mysql)

2. 安装

# 官方下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 加速下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 授权
chmod +x /usr/local/bin/docker-compose
# 查看版本
docker-compose version

3. 官方体验:python应用,计数器

官方文档地址:https://docs.docker.com/compose/gettingstarted/

1、应用:app.py

2、创建 Dockerfile 应用打包为镜像

3、创建 docker-compose.yml 定义整个服务,需要的环境、web、redis等

4、docker-compose up

5、停止 docker-compose down

4. compose配置变写规则

# docker-compose.yml 三层核心
version: "3.8"  # 1. 版本
services:       # 2. 服务
  web:          # 服务1
    build: .
    ports:
    depends_on: # 启动顺序 db->redis->web
      -db
      -redis
    environment:
      FLASK_ENV: development
  redis:         # 服务2
    image: "redis:alpine"
  db:            # 服务3
    image: mysql
# 其他配置 网络/卷/全局规则。。。
networks:
configs:

5. 自己编写微服务上线

1、注意:application.properties中 docker 容器直接使用域名访问

server.port=8080
spring.redis.host=redis

2、Dockerfile

FROM java:8

COPY *.jar /app.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]

3、docker-compose.yml

version: "3.8"
services:
  myapp:
    build: .
    depends_on:
      - redsi
    ports:
      - "8080:8080"
  redis:
    image: "redis:alpine"

4、docker-compose up

标签:容器,compose,8080,web,redis,Compose,Docker,docker
来源: https://www.cnblogs.com/qi-chao/p/15500860.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有