Docker-Compose的使用介绍

docker用起来很方便,但是容器不易管理,在容器启动后,没有记录很可能忘记最初的启动命令,同时对于由多个项目组成的系统,一个一个部署效率很低,最好还是需要有一个可记录的声明式的配置文件记录部署配置的详细信息,Docker-Compose便可以很好的解决这个问题。

Docker-compose安装

docker-compose是一个docker容器编排的工具,使用它可以实现一键部署
https://docs.docker.com/compose/install/

# 下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授权
sudo chmod +x /usr/local/bin/docker-compose
# 查看安装成功
docker-compose --version

Docker操作

# 构建镜像,当前文件夹下有dockerfile
docker build -t 镜像名称:版本号 .
# 导出镜像
docker save 镜像名称:版本号 > 镜像文件名.tar
# 导入镜像
docker load < 镜像名称.tar

Compose 配置案例

配置一个mysql、一个java、一个node
docker-compose有2版本和3版本,建议使用3版本

version: "3"
services:
  mysql:
    image: mysql/mysql-server
    container_name: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - ./data:/var/lib/mysql
      - ./conf/my.cnf:/etc/my.cnf
    ports:
      - "3306:3306"
  java-api:
    image: java-api:latest
    container_name: java-api
    ports:
      - "8663:8663"
    depends_on:
      - mysql
    restart: always
    volumes:
      - ./conf/application.properties:/usr/local/conf/application.properties
  nodejs-deploy:
    container_name: nodejs-deploy
    image: nodejs-deploy:latest
    ports:
      - "9100:9100"
    depends_on:
      - java-api
    restart: always

Compose 配置说明

配置镜像

services:
  image: mysql/mysql-server

配置容器名称

services:
  container_name: mysql

配置启动命令

services:
  command: --default-authentication-plugin=mysql_native_password

配置重启策略

services:
   restart: always

配置环境变量

services:
    environment:
      MYSQL_ROOT_PASSWORD: 123456

配置外置存储

前面的是本地地址,后面的是外部地址

services:
    volumes:
      - ./data:/var/lib/mysql
      - ./conf/my.cnf:/etc/my.cnf

配置端口

前面是宿主机端口,后面是容器端口

services:
    ports:
      - "3306:3306"

启动停止

# 启动
docker-compose -f deploy.yaml up -d
# 停止并删除容器
docker-compose -f deploy.yaml rm -s

版权声明:本文为weiwoyonzhe原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。