docker-compose

栏目: 编程工具 · 发布时间: 6年前

内容简介:举例

docker-compose

  • -f,--file 指定使用的compose模板文件,默认为docker-compose.yml
  • -p, --project-name NAME 指定项目名称,默认使用所在目录名称作为项目名
  • --verbose 输出更多的调试信息
  • -v,--version 打印版本并退出
常用命令
# 构建服务
docker-compose build
# 启动服务,启动过程中可以直接查看终端日志,观察启动是否成功
docker-compsoe up
# 启动服务在后台,如果确认部署成功,则可以使用此命令,将应用跑在后台,作用类似 nohup python waller.py &
docker-compose up -d
# 查看日志,效果类似 tail -f waller.log
docker-compose logs -f
# 停止服务,会停止服务的运行,但是不会删除服务所所依附的网络,以及存储等
docker-compsoe stop
# 删除服务,并删除服务产生的网络,存储等,并且会关闭服务的守护
docker-compose down
  • build 构建项目中的服务容器
    • docker-compose build [options]
      • --force-rm 删除构建过程中的临时容器
      • --no-cache 构建镜像过程中不使用缓存(这将加长构建过程)
      • --pull 始终尝试通过拉取操作来获取更新版本的镜像
  • help
  • kill 通过发送 SIGKILL 信号来强制停止服务容器
    • docker-compose kill -s SIGINT
  • logs 查看服务容器的输出
  • pause 暂停一个服务容器
  • port 打印某个容器端口所映射的公共端口
  • ps 列出项目中所有容器
  • pull 拉取服务以来的镜像
  • restart 重启项目中的服务
    • -t,--timeout,指定重启前停止容器的超时(默认10s)
  • rm 删除所有(停止状态)服务容器
    • -f,--force 强制直接删除,包括非停止状态的容器
    • -v 删除容器所挂载的数据卷
  • run 在指定服务上执行一个命令
    • docker-compose run ubuntu ping www.baidu.com
    • docker-compose run --no-deps web python manage.py shell 不自动关联
    • -d 在后台运行服务容器
    • --name Name 为容器指定一个名字
    • --entrypoint CMD 覆盖默认的容器启动指定
    • -e KEY=VAL 设置环境变量, 可多次使用
    • --rm 运行命令后自动删除容器,d模式下将忽略
    • -p,--publish=[] 映射服务端口并映射到本机主机
    • -T 不分配伪tty,意味着依赖tty的指令将无法执行
  • scale 设定指定服务运行的容器个数
    • docker-compose scale web=3 db=2 启动3个容器运行web,2个容器运行db
  • start 启动已经存在的服务容器
  • stop 停止已经处于运行状态的容器,但不删除
  • unpause 恢复处于暂停状态的服务
  • up 自动完成包括构建镜像、创建服务、启动服务并关联服务相关容器的一系列操作
    • -d 在后台运行服务容器
    • --no-color 不启动服务所链接的容器
    • --no-deps 不启动服务所链接的容器
  • migrate-to-labels 重新创建容器,并添加label
  • version 打印版本信息

compose 环境变量

  • COMPOSE_PROJECT_NAME 设置compose的项目名称,默认是当前工作目录(docker-compose.yml文件所在的目录)的名字
  • COMPOSE_FILE 设置要使用的docker-compose.yml的路径。如果不指定,默认会先查找当前工作目录下是否存在docker-compose.yml文件,如果还找不到,则继续查找上层目录
  • COMPOSE_HOST 设置 docker 服务端的监听地址。默认unix:///var/run/docker.sock
  • COMPOSE_HTTP_TIMEOUT compose 发送 docker 服务端的请求超时,默认60s

compose 模板文件

举例

vim walle.env

# Set MySQL/Rails environment
MYSQL_USER=root
MYSQL_PASSWORD=walle
MYSQL_DATABASE=walle
MYSQL_ROOT_PASSWORD=walle


vim docker-compose.yml

version: '3.7'
services:
  web:
    image: alenx/walle-web:2.0
    container_name: walle-nginx
    hostname: nginx-web
    ports:
    # 如果宿主机80端口被占用,可自行修改为其他port(>=1024)
    # 0.0.0.0:要绑定的宿主机端口:docker容器内端口80
      - "80:80"
    links:
      - python
    depends_on:
      - python
    networks:
      - walle-net
    dns: 
      - 8.8.8.8
      - 9.9.9.9
    # 类似 --add-host
    extra_hosts: 
      - "google.com:8.8.8.8"
    ulimits: 
      nproc: 65535
      nofile: 
        soft: 20000
        hard: 40000
    restart: always

  python:
    # 默认使用alenx/walle-python:2.0
    # maven工程使用alenx/walle-java:2.0; maven:3.6.0, jdk:1.8.0_181
    image: alenx/walle-python:2.0
    #    image: alenx/walle-java:2.0
    container_name: walle-python
    hostname: walle-python
    env_file:
      # walle.env需和docker-compose在同级目录
      - walle.env
    command: bash -c "cd /opt/walle-web/ && /bin/bash admin.sh migration && python waller.py"
    expose:
      - "5000"
    volumes:
      - /tmp/walle/codebase/:/tmp/walle/codebase/
      - /tmp/walle/logs/:/opt/walle-web/logs/
      - /root/.ssh:/root/.ssh/
    links: 
      - db
    depends_on:
      - db
    networks:
      - walle-net
    environment: 
      - RACK_ENV: development
    restart: always

  db:
    image: mysql
    container_name: walle-mysql
    hostname: walle-mysql
    env_file:
      - walle.env
    command: --default-authentication-plugin=mysql_native_password
    ports:
      - "3306:3306"
      - "127.0.0.1:8001:8001"
    expose:
      - "3306"
    volumes:
      - /data/walle/mysql:/var/lib/mysql
      - ~/configs:/etc/configs/:ro
    networks:
      - walle-net
    dns: 8.8.8.8
    restart: always

networks:
  walle-net:
    driver: bridge

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Coding the Matrix

Coding the Matrix

Philip N. Klein / Newtonian Press / 2013-7-26 / $35.00

An engaging introduction to vectors and matrices and the algorithms that operate on them, intended for the student who knows how to program. Mathematical concepts and computational problems are motiva......一起来看看 《Coding the Matrix》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具