docker-compose 的安装和使用

  docker-compose 是一个用户自定义和运行多个容器的docker 应用程序,在 compose中,可以使用yaml 或者yml 文件来配置应用程序。

  

  安装:

yum -y install epel-release
yum -y install python-pip
pip install docker-compose 
docker-compose version

  docker-compose.yml     运行命令 docker-compose up -d

docker-compose up -d 用 up 启动容器
-d标志,则以守护进程模式运行服务
docker-compose up -d --scale spider=8 --scale选项指定服务的个数
docker-compose ps  列出本地 docker-compose.yml 文件里定义的正在运行的所有服务
docker-compose logs 个命令会追踪服务的日志文件
ocker-compose stop 停止所有服务,如果服务没有停止,可以使用docker-compose kill强制杀死服务
docker-compose rm 删除所有服务
version: '2' #版本声明
networks: #网络声明
   ghost: #网络名称
services: #服务声明
   ghost-app: #服务名称
restart: always # 重启服务 关机或者重启docker的时候,重启服务 build: ghost # 来源路径用来指定一个包含Dockerfile文件的路径。一般是当前目录. networks: #网络声明
- ghost #网络名称 depends_on: #指定服务依赖 - db #指定服务依赖 ports: #用于暴露端口 - "2368:2368" nginx: build: nginx networks: - ghost depends_on: - ghost-app ports: - "80:80" db: image: "mysql:5.7.15" #指定镜像tag或者ID networks: - ghost environment: #添加环境变量 MYSQL_ROOT_PASSWORD: mysqlroot MYSQL_USER: ghost MYSQL_PASSWORD: ghost volumes: #挂载数据卷 - $PWD/data:/var/lib/mysql ports: - "3306:3306"

说明:

  每一个compose 都必须指定 image或者build 中的一个。

  build  用来指定包含dockerfile 文件的路径,   context 路径, args 用于构建过程中,替换dockerfile 文件中定义的ARG参数

build: ./dir
build:
  context: ./dir
  dockerfile: Dockerfile-alternate
  args:
    buildno: 1

从文件中获取环境变量

env_file: .env
env_file:
 - ./common.env
 - ./apps/web.env
 - /opt/secrets.env

links可以链接到docker 服务中,可以给出服务名和别名  同docker run --link

links:
 - db
 - db:mysql
 - redis

ports 用于暴露端口,同docker run -p

ports:
 - "3000"
 - "8000:8000"
 - "49100:22"
 - "127.0.0.1:8001:8001"

expose提供container之间的端口访问,不会暴露给主机使用。同docker run --expose

expose:
 - "3000"
 - "8000"
volumes挂载数据卷。同docker run -v
volumes:
 - /var/lib/mysql
 - cache/:/tmp/cache
 - ~/configs:/etc/configs/:ro

挂载数据卷容器,挂载是容器。同docker run --volumes-from

volumes_from:
 - service_name
 - service_name:ro
 - container:container_name
 - container:container_name:rw

添加环境变量。同docker run -e。可以是数组或者字典

environment:
  RACK_ENV: development
  SESSION_SECRET:

environment:
  - RACK_ENV=development
  - SESSION_SECRET

depends_on 于指定服务依赖,一般是mysql、redis等  指定了依赖,将会优先于服务创建并启动依赖。

external_links  与links相似   external_links链接的服务与当前服务必须是同一个网络环境

extra_hosts 添加主机名映射

extra_hosts:
 - "somehost:162.242.195.82"
 - "otherhost:50.31.209.229"

 

  

 
 
原文地址:https://www.cnblogs.com/chengyangyang/p/11658768.html