Docker compose

compose简介

compose 是一个可定义和运行多个容器的docker容器应用管理工具,使用compose,你可以通过编写YAML文件配置你的应用程序或者服务,你可以创建并运行你的配置,尤其是在同一宿主主机下面,要运行多个容器,compose是一个不错的管理工具。

compose的使用一般包括三个步骤

  1.使用Dockerfile定义你的应用运行的环境,让它可以在任何地方运行

  2.在docker-compose.yml文件中定义组成你需要运行的服务的环境,

  3.运行docker-compose up来启动你的服务

 

 

以下实验环境均在Centos操作系统上完成

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)

 

1.compose的安装

curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 安装之后直接执行会报错,如下:

[root@localhost ~]# /usr/local/bin/docker-compose
-bash: /usr/local/bin/docker-compose: Permission denied

 原因是没有执行权限,赋执行权限即可

[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
、

2.compose选项

  build              Build or rebuild services                                                    
  bundle             Generate a Docker bundle from the Compose file     
  config             Validate and view the compose file
  create             Create services
  down               Stop and remove containers, networks, images, and volumes
  events             Receive real time events from containers
  exec               Execute a command in a running container
  help               Get help on a command
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pull service images
  push               Push service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  unpause            Unpause services
  up                 Create and start containers
  version            Show the Docker-Compose version information

 

3.docker-compose.yml文件格式详解

一份标准的docker-compose.yml文件应该包含version,services以及networks三个部分,其中最重要的是services和netwotks两个部分

以下是一份标准的docker-compose.yml配置文件

version: '2' 
services:
  App1:
    image: nginx
    ports:
      - "8080:80"
    networks:
      - "netName1"
    volumes:
      - /opt/conf/:/mnt
  App2:
    image: nginx
    ports:
      - "8081:80"
    networks:
      - "netName1"
    volumes:
      - /opt/conf/:/mnt
  App3:
    image: nginx
    ports:
      - "8082:80"
    networks:
      - "netName2"
networks:
  netName1:
    driver: bridge
  netName2:
    driver: bridge
 

-- image

其中第一行是version

第二行services标签就是定义服务,在services标签下的第一个标签就是定义服务的名称,image则是指定服务的镜像名称或者镜像ID,如果这个镜像不存在,docker会尝试去自动拉取这个镜像

 

-- build

服务除了基于指定的镜像,还可以基于一份Dockerfile,在使用

 

posted @ 2018-05-22 14:33  啥都不会的团长  阅读(196)  评论(0)    收藏  举报