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"