程序人生

(七):docker-compose

2018-09-19  本文已影响0人  木夕月_fc7b

简介

compose安装

安装地址参考

https://docs.docker.com/compose/install/

https://docs.docker.com/compose/completion/#install-command-completion

1.下载compose

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

2.设置可执行权限

sudo chmod +x /usr/local/bin/docker-compose

3.安装bash命令tab补充

sudo curl -L https://raw.githubusercontent.com/docker/compose/1.22.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

## 在~/.bashrc 末尾添加
. /etc/bash_completion.d/docker-compose

source ~/.bashrc 

4.版本查看

$ docker-compose --version
docker-compose version 1.22.0, build 1719ceb

5.卸载

sudo rm /usr/local/bin/docker-compose

compose配置说明

version: '3'
services:
  redis:
    image: redis:alpine
    deploy:
      replicas: 6
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure

配置选项

bulid

build:
  context: ../
  dockerfile: path/of/Dockerfile

image

## service_name:服务名称。
## image:镜像名称或镜像 ID。
services:
  service_name:
    image: ubuntu:14.04

args

ARG buildno
ARG gitcommithash

RUN echo "Build number: $buildno"
RUN echo "Based on commit: $gitcommithash"
build:
  context: .
  args:
    buildno: 1
    gitcommithash: cdc3b19

build:
  context: .
  args:
    - buildno=1
    - gitcommithash=cdc3b19
args:
  - buildno
  - gitcommithash

command

command: bundle exec thin -p 3000
或者
command: ["bundle", "exec", "thin", "-p", "3000"]

depends_on

version: '3'
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres

pid

pid: "host"

ports

ports:
 - "3000"
 - "3000-3005"
 - "8000:8000"
 - "9090-9091:8080-8081"
 - "49100:22"
 - "127.0.0.1:8001:8001"
 - "127.0.0.1:5000-5010:5000-5010"
 - "6060:6060/udp"

extra_hosts

extra_hosts:
 - "somehost:162.242.195.82"
 - "otherhost:50.31.209.229"
 
## 启动之后查看容器内部hosts:
162.242.195.82  somehost
50.31.209.229   otherhost

volumes

数据卷的格式可以是下面多种形式:

volumes:
  // 只是指定一个路径,Docker 会自动在创建一个数据卷(这个路径是容器内部的)。
  - /var/lib/mysql
 
  // 使用绝对路径挂载数据卷
  - /opt/data:/var/lib/mysql
 
  // 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器。
  - ./cache:/tmp/cache
 
  // 使用用户的相对路径(~/ 表示的目录是 /home/<用户目录>/ 或者 /root/)。
  - ~/configs:/etc/configs/:ro
 
  // 已经存在的命名的数据卷。
  - datavolume:/var/lib/mysql
volume_driver: mydriver

compose常用命令

命令提示

Commands:
  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
  images             List images
  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
  top                Display the running processes
  unpause            Unpause services
  up                 Create and start containers
  version            Show the Docker-Compose version information

构建启动容器

docker-compose up -d nginx

登录容器

docker-compose exec nginx bash

停止并且删除所有容器、镜像、挂载、镜像

docker-compose down

显示所有容器

docker-compose ps

重新启动容器

docker-compose restart nginx

暂停容器

docker-compose pause nginx

恢复容器

docker-compose unpause nginx

删除容器(删除前必须关闭容器)

docker-compose rm nginx

停止容器

docker-compose stop nginx

启动容器

docker-compose start nginx

不启动依赖容器并且执行后删除容器

docker-compose run --no-deps --rm web python manage.py db upgrade

构建镜像

docker-compose build nginx

## 不带缓存的构建。
docker-compose build --no-cache nginx   

查看日志

docker-compose logs  nginx                    

## 查看实时日志
docker-compose logs -f nginx

验证(docker-compose.yml)文件配置

docker-compose config  -q

以json的形式输出docker日志

docker-compose events --json nginx

stack常用命令

[root@node146 harbor]# docker stack --help

Usage:  docker stack COMMAND

Manage Docker stacks

Options:


Commands:
  deploy      Deploy a new stack or update an existing stack
  ls          List stacks
  ps          List the tasks in the stack
  rm          Remove one or more stacks
  services    List the services in the stack

Run 'docker stack COMMAND --help' for more information on a command.
## 创建服务
docker stack deploy -c /usr/local/portainer/portainer-agent-stack.yml portainer

## 删除服务
docker stack rm portainer
上一篇 下一篇

猜你喜欢

热点阅读