docker-compose实践

1. 关于docker-compose

Docker Compose是一个用于定义和运行多个Docker应用程序的工具。通过使用YAML文件来配置应用程序的服务,使用单个命令可以从配置中创建并启动所有服务。
通过命令可以实现

  1. 启动、停止和重建服务。
  2. 查看正在运行的服务状态。
  3. 通过流输出正在运行的服务日志。
  4. 对某个服务执行命令。

2. 安装docker-compose

docker for window默认已经安装过了docker compose。
centos7下安装docker-compose
二进制包地址:https://github.com/docker/compose/releases

#下载最新稳定版本 v1.29.2
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose
#创建软链
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#测试是否安装成功
docker-compose --version

3. 常用命令

#执行compose 启动命令 
docker-compose up -d
#执行compose 销毁命令,停止容器,删除容器
docker-compose down
# 查看当前应用下启动的容器
docker-compse ps 
# 停止所有容器,但不删除
docker-compse stop 
# 命令帮助
docker-compose -h

更详细的参考官网文档:https://docs.docker.com/compose/reference/

4. springboot+mysql容器化示例

以下栗子为一个普通springboot应用使用mysql数据库。首先生成/pull两个镜像

  1. mysql:latest
  2. 12.78.18.15:5000/fabric-docker:1.0-SNAPSHOT
    然后定义2个服务(应用database+数据库webapi)
    具体说明参考注释,docker-compose.yml内容如下
#版本号,建议用3兼容最新版的docker引擎
version: '3'
#所有的服务节点
services:
  #数据库服务
  database:
    #镜像名称
    image: mysql:latest
    #容器名称
    container_name: mysql
    #端口号 server port:container port
    ports:
      - 3307:3306
    volumes:
      # 引用定义好的volume
      - mysql-data:/var/lib/mysql
    # 参数,相当于docker run -e
    environment:
      - MYSQL_ROOT_PASSWORD=123456
  #应用服务
  web-api:
    image: 12.78.18.15:5000/fabric-docker:1.0-SNAPSHOT
    container_name: web-api
    # 依赖数据库,先启动数据库
    depends_on:
      - database
    ports:
      - 8082:8082
    #其他服务的别名,在本服务中可以用别名
    links:
      - database:db
    volumes:
      - /etc/localtime:/etc/localtime
      - /mydata/app/mall-tiny-docker-compose/logs:/var/logs
# 公共卷定义
volumes:
  mysql-data:
    # external true:表示要提前在外部创建好volume,false: 则volume不用新创建,dockercompose up时候会自动在应用内部创建,卷名称一般会加上前缀docker_
    external: true
docker-compose

你可能感兴趣的:(docker-compose实践)