docker-compose (自动部署docker容器)

不念不忘少年蓝@ 2022-04-24 16:50 583阅读 0赞

Docker-Compose 是 Docker 的一种编排服务,是一个用于在 Docker 上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用。

通过 Docker-Compose 用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

Docker Compose 工作原理图

Docker(四):Docker 三剑客之 Docker Compose

Compose 中有两个重要的概念:

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

一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理,通过子命令对项目中的一组容器进行便捷地生命周期管理。

Compose 项目由 Python 编写,实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理。

注: docker重新启动后自动启动docker-compose

Docker Compose 安装

Docker Compose 是 Docker 的独立产品,因此需要安装 Docker 之后在单独安装 Docker Compose .

  1. #下载
  2. sudo curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  3. #安装
  4. chmod +x /usr/local/bin/docker-compose
  5. #查看版本
  6. docker-compose version

创建一个 docker-compose.yml 文件,内容如下

  1. version: "3" # compose-file的语法版本
  2. services:
  3. mysql:
  4. container_name: mysql
  5. image: "docker.io/mysql:5.6.44" #从私有仓库拉镜像
  6. restart: always #docker容器启动 自动启动docker-compose
  7. volumes:
  8. - ./mysql/data/:/var/lib/mysql/ #映射mysql的数据目录到宿主机,保存数据
  9. - ./mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf #把mysql的配置文件映射到容器的相应目录
  10. ports:
  11. - "3306:3306"
  12. environment:
  13. - MYSQL_ROOT_PASSWORD=root #数据库密码
  14. nginx:
  15. container_name: nginx
  16. restart: always
  17. image: nginx
  18. ports:
  19. - 80:80
  20. - 443:443
  21. - 5050:5050
  22. - 4040:4040
  23. volumes:
  24. - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf #映射nginx的配置文件到容器里
  25. - ./nginx/logs/:/var/log/nginx/
  26. - ./nginx/data/:/var/share/nginx/html/ #映射nginx的网页目录到容器里
  27. links:
  28. - tomcat:t1 #连接 tomcat镜像
  29. tomcat:
  30. container_name: tomcat
  31. restart: always
  32. image: tomcat
  33. ports:
  34. - 8080:8080
  35. - 8009:8009
  36. volumes:
  37. - ./tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml #映射 tomcat的配置文件到容器里
  38. - ./tomcat/webapps/web:/usr/local/tomcat/webapps/web #映射一个web服务
  39. - ./tomcat/logs/:/usr/local/tomcat/logs/
  40. links:
  41. - mysql:m1 #连接数据库镜像

启动:

  1. docker-compose up -d(后台启动) 或者 docker-compose -f *.yaml 文件名

发表评论

表情:
评论列表 (有 0 条评论,583人围观)

还没有评论,来说两句吧...

相关阅读