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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32653205/article/details/89678980

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 .

#下载
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
#安装
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose version

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

version: "3"
services:
  mysql:
    container_name: mysql
    image: "docker.io/mysql:5.6.44"              #从私有仓库拉镜像
    restart: always                              #docker容器启动  自动启动docker-compose
    volumes:
      - ./mysql/data/:/var/lib/mysql/             #映射mysql的数据目录到宿主机,保存数据
      - ./mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf #把mysql的配置文件映射到容器的相应目录
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=root                 #数据库密码       
  nginx:
    container_name: nginx
    restart: always
    image: nginx
    ports:
      - 80:80
      - 443:443
      - 5050:5050
      - 4040:4040
    volumes:
      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf       #映射nginx的配置文件到容器里
      - ./nginx/logs/:/var/log/nginx/
      - ./nginx/data/:/var/share/nginx/html/                #映射nginx的网页目录到容器里
    links:
      - tomcat:t1                                           #连接 tomcat镜像
  tomcat:
    container_name: tomcat
    restart: always
    image: tomcat
    ports:
      - 8080:8080
      - 8009:8009
    volumes:
      - ./tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml  #映射 tomcat的配置文件到容器里
      - ./tomcat/webapps/web:/usr/local/tomcat/webapps/web          #映射一个web服务
      - ./tomcat/logs/:/usr/local/tomcat/logs/
    links:
      - mysql:m1                                                    #连接数据库镜像

启动:

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

   

猜你喜欢

转载自blog.csdn.net/qq_32653205/article/details/89678980