Docker-Compose简介

1、DockerCompost安装

https://github.com/docker/compose/releases

这次安装选择v2.1.0。由于这个是二进制文件,所以放在usr/bin/即可

shell>wget https://github.com/docker/compose/releases/download/v2.1.0/docker-compose-linux-x86_64
shell>mv docker-compose-linux-x86_64 /usr/bin/docker-compose
shell>chmod +x /usr/bin/docker-compose

2、Compose的三大步

  • 定义Dockerfile,以便可以在任意环境运行
  • 定义应用程序启动配置文件docker-compose.yml
  • docker-compose启动并管理整个应用程序生命周期

https://docs.docker.com/compose/compose-file/

version: '3'
services:
  web:
    image: nginx
    ports:
     - "80:80"
    networks:
     - test
  db:
    image: mysql:5.7
    command: --character-set-server=utf8
    environment:
     - MYSQL_ROOT_PASSWORD=123456
    volumes:
     - "mysqldata:/var/lib/mysql"
    networks:
     - test
networks:
  test: {}
volumes:
  mysqldata: {}
  • docker network create test
  • docker run -d -p 80:80 –net test nginx
  • docker run -d -v mysqldata:/var/lib/mysql -e MY_ROOT_PASSWORD=12345 mysql:5.7 –character-set-server=utf8

以上是dockercompose的命令拆分

shell>docker-compost -f docker-compost.yml up -d

3、需要先用dockerfile构建镜像怎么办呢?

-----vim Dockerfile
FROM centos:7
RUM yum install lrzsz -y
CMD ["sleep 3600"]

--------
version: '3'
services:
  Cust-system:
    build:
      dockerfile: Dockerfile
      context: .

shell>docker-compose build
shell>docker-compose up -d
shell>docker-compost ps
字段描述示例
build
dockerfile
context
构建选项
指定Dockerfile文件名
构建镜像上下文路径
build:
context: ./dir
dockerfile: Dockerfile-alternate
image指定镜像image: webapp:tag
command容器中执行命令,覆盖默认命令command: bundle exec thin -p 300o
command: [“bundle”, “exec”,”thin”,”-p”,”3000″]
container_name指定容器名称,由于容器名称是唯一的,如果指
定自定义名称,则无法scale
container_name: my-web-container
environment添加环境变量environment
– RACK_ENV=development
-SHOw -true
networks力入网络,引用顶级networks下条目networks:
– new
ports暴露端口,与-p相同,但端口不能低于60ports:
– “80:80 ”
– “6060:6060/udp”
extra_hosts添加主机名映射,与—add-host相同extra_hosts:
– “somehost:162.242.195.82”
– “otherhost:50.31.209.229”
volumes挂载宿主机路径或数据卷。如果是命名卷在顶级
volumes定义卷名称
volumes:
– /opt/data:/var/lib/mysql
– datavolume:/var/lib/mysql
restart重启策略,默认no, always]on-failure[unless-
stopped
restart: always
hostname容器主机名hostname: foo

Compose 常用选项与命令

命令描述
build重新构建服务
ps列出容器
up创建和启动容器
exec在容器里执行命令
scale指定一个服务容器启动数量
down删除容器、网络、数据卷和镜像
stop/start/restart停止/启动/重启服务
  • docker-compose build
  • docker-compose scale Cust-system=2
  • docker-compose up -d
  • docker-compose dowm
  • docker-compose stop/start/restart Cust-system

常用选项:
-f,–file 指定yaml文件,默认docker-compose.yml
-p,–project-name 指定项目名称,默认是当前目录

shell>docker-compose -f docker-compose.yml -p fox up- d --build
shell>docker-compose -p fox ps