终于写到docker-compose了,其实我最开始接触docker的时候,是因为一个开源项目需要用docker 环境和docke-compose 所以我最先接触的是docker-compse 后面才恶补的docker的一些基础知识。
可以看到docker-composer 和docker 有关系,但是你也了解docker-compose 的命令 简单的操作docker 容器。
说了这么多,还没有说docker-compose 有什么作用,为什么要使用docker-coompose。
其实我们都知道,在我们实际的项目中,一个项目一般都是前端服务端数据库都进行分离的。所以一个项目一般都是有多个镜像组成的。那怎么将这一组镜像管理起来呢?就是通过docker-compose 啦
docker-compose 中有两个重要呢的概念
服务(service ): 就是我们上面说的一个应用容器,仅仅负责真个项目的中的一部分,比如数据库mysql.
项目(project):就是我们上面说你的项目啦,包含一组容器。
docker-compose 通过 docker-compose.yml 文件对这一组容器进行配置。
好了,正式开始接触 docker-compose吧
安装docker-compose 安装很简单,windos 版本的已经自带了。我们可以通过
docker-compose -v查看我们本机安装的docker-compose 版本。
Linux 安装也很简单。
在官网上也有:https://github.com/docker/compose/releases
卸载 docke-compose
sudo rm /usr/local/bin/docker-compose 本地安装如果上面安装不行的话,或者报错,可以用下面的方式进行安装。
在上面的官网上找到对应版本的Assests 选择对应的文件下载。
下载下来后,我们放到 /usr/local/bin/ 目录下。执行下面操作
#改名 sudo mv docker-compose-Linux-x86_64 ./docker-compose #增加执行权限 sudo chmod +x /usr/local/bin/docker-compose这样就和上面的效果是一样的啦,我们可以通过docker-compose -v 查看安装成功没有。
docker-compose.yml知道了docker-compose 那最重要的就是docker-compose.yml 文件啦,通过这个文件就可以管理项目的镜像了,那我们怎么写docker-compose.yml 文件呢?
官方提供了很多模版,我们按照模版来写就可以了。
可以看到格式就是我们熟悉的yml 格式,和我们springboot 项目中配置是差不多的。
我们前面知道的一个项目是由一组服务组成的,也就是你对应文件中的services。webapp 就是我们为服务起的一个名字,image 对应的镜像名,ports 镜像暴露的端口,volumes 镜像的数据卷。可以看到,里面的命令和docker run 的指令是差不多的。
解决容器的依赖,表示一个容器依赖其他的其他容器,比如说
version: "3" services: webapp: image: examples/web ports: - "80:80" volumes: - "/data" depends_on: - redis - mysql redis: image: redis:latest restart: always ports: - "6379:6379" mysql: image: mysql:latest restart: always ports: - "3306:3306"还是上面的例子,只不过我多加了两个 service 。表示这个项目中用到了mysql 和redis 并且在webapp 中使用depends_on 表示redis 和mysql 先webapp 启动。
更多的模版,大家用的时候可以参考官网上就可以了我感觉。知道是什么意思就可以,不用都记下来。
https://yeasy.gitbooks.io/docker_practice/content/compose/compose_file.html
docker-compose 指令我们可以通过帮助指令来查看docker-compose 怎么使用。
docker-compose --help基本语法格式:
docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]我这里也就将一下常见的,因为通过--help 都可以查到。
docker-compose config用于检查我们的docker-compose.yml 文件的内容格式是否正确,在我们运行之前先检测一下比较好。
docker-compose up用来启动项目,比如我们现在有一个docker-compose.yml 文件,那我们进入到这个文件目录,执行docker-compose up 就可以将项目依赖的镜像下载下来,并启动相应的容器服务。整个项目都启动起来了,直接使用就好了,可谓是相当强大了。
docker-compose up -d 表示后台启动。
docker-compose down和 up 对应,用来停止我们的项目。
docker-compose restart重启我们项目
其他的也不说了,可以查看官网:
https://docs.docker.com/compose/reference/overview/
demo