docker-compose简介
- docker-compose可以帮助我们快速的构建和对容器的启动以及停止等操作
- Compose是 Docker 的服务编排工具,诞生主要是来帮助开发或运维人员很好地管理docker容器;减少繁琐的单个容器创建、删除等操作,比较适合组合使用多个容器进行开发的场景。
对于需要多个容器的操作,传统的方式是一个个的创建及运行,而composer则只需要通过一次性把这些命令写在docker-composer.yml文件中,以后每次启动这一整个环境的时候,只需要你只要敲一个
docker composer up命令就ok了。
- 相关命令
docker-compose up -d # 启动命令
docker-compose stop
docker-compose down
- 安装(官网地址:https://docs.docker.com/compose/)
[root@localhost lrnp]# curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 423 100 423 0 0 476 0 --:--:-- --:--:-- --:--:-- 476
100 16.7M 100 16.7M 0 0 1867k 0 0:00:09 0:00:09 --:--:-- 1975k
- 修改权限
chmod +x /usr/local/bin/docker-compose - 安装完成后可以查看版本
docker-compose --version
运用
- docker-compose的默认模版文件为: docker-compose.yml。 和Dockerfile一样,它也是有自己的语法命令的。其中定义的每个服务都必须通过image指令指定镜像或build指令(需要Dockerfile)来自动构建。其它大部分指令都跟docker run中的类似。
需要注意的是docker-composer运用的时候一定要注意版本的问题,每个docker-compose.yml必须定义image或者build中的一个,其它的是可选的。 image 指定镜像tag或者ID
#编排php,redis,nginx容器
version: "3.6" # 确定docker-composer文件的版本
services: # 代表就是一组服务 - 简单来说一组容器
nginx: # 这个表示服务的名称,课自定义; 注意不是容器名称
build: # 根据dockerfile构建镜像及构建为容器
context: ./nginx
image: nginx # 指定容器的镜像文件
container_name: nginx_compose # 这是容器的名称
ports: # 配置容器与宿主机的端口
- "82:80"
networks: ## 引入外部预先定义的网段
lrnp:
ipv4_address: 172.100.100.110 #设置ip地址
privileged: true # 执行特殊权限的命令
volumes: # 配置数据挂载
- /www/wwwroot/project/00-1/lrnp/nginx/conf:/conf
working_dir: /conf #工作目录
php: # 这个表示服务的名称,课自定义; 注意不是容器名称
build: # 根据dockerfile构建镜像及构建为容器
context: ./php
image: php7 # 指定容器的镜像文件
container_name: php_compose # 这是容器的名称
ports: # 配置容器与宿主机的端口
- "9002:9000"
networks: ## 引入外部预先定义的网段
lrnp:
ipv4_address: 172.100.100.120 #设置ip地址
volumes: # 配置数据挂载
- /www/wwwroot/project/00-1/lrnp/php/www:/www
redis: # 这个表示服务的名称,课自定义; 注意不是容器名称
image: redis5asm # 指定容器的镜像文件
networks: ## 引入外部预先定义的网段
lrnp:
ipv4_address: 172.100.100.130 #设置ip地址
container_name: redis_compose # 这是容器的名称
ports: # 配置容器与宿主机的端口
- "6380:6379"
volumes: # 配置数据挂载
- /www/wwwroot/project/00-1/lrnp/redis:/redis
#command: top
#设置网络模块
networks:
#使用之前定义的网络
lrnp:
external:
name: lrnp
#自定义网络
#nginx_net:
#driver: bridge
#ipam: #定义网段
#config:
#- subnet: "172.15.22.0/24"
注意:需要注意配置nginx的配置和redis配置
[root@localhost composer]# docker-compose up -d
Creating php_compose ... done
Creating nginx_compose ... done
Creating redis_compose ... done
[root@localhost composer]#