DockerDocker Compose简介安装使用演示

Posted dezasseis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DockerDocker Compose简介安装使用演示相关的知识,希望对你有一定的参考价值。

一、Docker Compose简介

  • 微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知。
  • Docker Compose是一种编排服务,基于pyhton语言实现,是一个用于在 Docker
    上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用。
  • 用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。
  • 解决了容器与容器之间如何管理编排的问题。

二、Docker Compose管理命令

  • docker-compose运行时是需要指定service名称,可以同时指定多个,也可以不指定。不指定时默认就是对配置文件中所有的service执行命令。
    -f:用于指定配置文件
    -p:用于指定项目名称

docker-compose build用来创建或重新创建服务使用的镜像

docker-compose kill用于通过容器发送SIGKILL信号强行停止服务

docker-compose logs显示service的日志信息

docker-compose pause暂停服务

docker-compose unpause恢复被暂停的服务

docker-compose port用于查看服务中的端口与物理机的映射关系

dokcer-compose ps用于显示当前项目下的容器

docker-compose pull用于拉取服务依赖的镜像

docker-compose restart用于重启某个服务中的所有容器

docker-compose rm删除停止的服务(服务里的容器)
-f #强制删除
-v #删除与容器相关的卷(volumes)

docker-compose run用于在服务中运行一个一次性的命令。这个命令会新建一个容器,它的配置和srvice的配置相同。
但两者之间还是有两点不同之处
1、run指定的命令会直接覆盖掉service配置中指定的命令
2、run命令启动的容器不会创建在service配置中指定的端口,如果需要指定使用–service-ports指定

docker-compose start启动运行某个服务的所有容器

docker-compose stop启动运行某个服务的所有容器

docker-compose scale指定某个服务启动的容器个数

三、安装Docker Compose

下载源:https://github.com/docker/compose/releases

  • 下载docker-compose-Linux-x86_64-1.27.0到/usr/local/bin/目录下
    mv docker-compose-Linux-x86_64-1.27.0 /usr/local/bin/docker-compose
  • 加执行权限
    chmod +x /usr/local/bin/docker-compose

四、应用实例

整体目录结构
在这里插入图片描述
mkdir haproxy
mkdir web1
mkdir web2
echo web1 > web1/index.html
echo web2 > web2/index.html

vim docker-compose.yml:编辑示例文件(提前拉取镜像)

version: "3.9"#指定语法的版本
services: #定义服务
  web1: #服务的名称
    image: nginx #镜像
    networks:
      - mynet
    volumes: #物理机与容器的磁盘映射关系
      - ./web1:/usr/share/nginx/html
  web2:
    image: nginx
    networks:
      - mynet
    volumes:
      - ./web2:/usr/share/nginx/html
  haproxy:
    image: haproxy
    networks:
      - mynet
    ports:
      - "80:80"
    volumes:
      - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg

networks:
  mynet:

vim haproxy/haproxy.cfg

global
        maxconn         65535
        stats socket    /var/run/haproxy.stat mode 600 level admin
        log             127.0.0.1 local0
        uid             200
        gid             200
        #chroot          /var/empty
        daemon

defaults
        mode            http
        log             global
        option          httplog
        option          dontlognull
        monitor-uri     /monitoruri
        maxconn         8000
        timeout client  30s
        retries         2
        option redispatch
        timeout connect 5s
        timeout server  5s
        stats uri       /status
# The public 'www' address in the DMZ
frontend public
        bind            *:80 name clear
        #bind            192.168.1.10:443 ssl crt /etc/haproxy/haproxy.pem

        #use_backend     static if { hdr_beg(host) -i img }
        #use_backend     static if { path_beg /img /css   }
        default_backend dynamic
# The static backend backend for 'Host: img', /img and /css.
backend dynamic
        balance         roundrobin
        server          app1 web1:80 check inter 1000
        server          app2 web2:80 check inter 1000

在这里插入图片描述

以上是关于DockerDocker Compose简介安装使用演示的主要内容,如果未能解决你的问题,请参考以下文章

Dockerdocker-compose安装 Redis

Dockerdocker-compose安装 Redis

Dockerdocker-compose安装Mysql

Dockerdocker-compose安装Mysql

CentOS7离线安装dockerdocker-compose

DockerDocker-Compose 快速安装 (CentOS | Ubuntu | Mac OS | Windows[虚拟机/WSL1/WSL2])