docker-compose简单使用

576 阅读2分钟

一、简介

1、Compose 面向多个容器服务进行管理。

2、docker-compose.yml 文件,这个是 Compose 使用的主模板文件。默认使用这个模板。

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

二、命令

1、命令要在模板文件的根目录下执行

2、使用Compose 基本上分为三步:

1.Dockerfile 定义应用的运行环境 2.docker-compose.yml 定义组成应用的各服务 3.docker-compose up 启动整个应用

3、docker-compose up(启动模板文件中的多个容器)

该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。

docker-compose up (前台)根据build好的镜像起一个容器

docker-compose up -d(后台)

docker-compose up --build 重新构建,然后再用新的镜像起一个容器

docker-compose up --build -d

4、docker-compose build(产生多个镜像,并不是多个镜像都塞到一起)

构建(重新构建)项目中的镜像;只会进行build而不会进行启动容器;

三、模板文件

version: '3'		//docker-compose版本号,要匹配docker的版本号
services:
  backend:			//这个名字是用户自己自定义,它就是服务名称。
    build:			//build指令,会根据dockerfile来构建镜像
      context: .	//指定Dockerfile所在路径
      dockerfile: Dockerfile		//Dockerfile文件名
    container_name: ards_backend
    restart: always					//指定容器退出后重启
    ports:
      - 8083:8083
    volumes: 
      - /var/run/docker.sock:/var/run/docker.sock
      - /tmp:/tmp
	  #可以用数据卷
	  #- mysql:/var/lib/mysql

1、注意:每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)等来自动构建生成镜像。

2、服务除了可以基于指定的镜像,还可以基于一份 Dockerfile;在使用 up 启动之时执行构建任务,这个构建标签就是 build;

3、image:指定为镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉取这个镜像。

4、build:指定 Dockerfile 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像。

这个生成的镜像名是当前目录名+自己定义的服务名,如ards_backend

5、使用docker-compose up启动容器后,这些容器都会被加入[app]_default网络中。