docker-compose

docker-compose(单机版)

1、配置文件 

服务services:需要运行的容器配置,可以理解为原先用docker run命令后面跟的一系列配置信息,都配置在这个下面

网络network:docker-compose 公共自定义网络管理,配置好以后,可以直接在services中引用该网络配置,这个配置可以多个services使用

数据卷volumes:统一数据卷管理,可以给多个service使用

docker-compose编排文件

version: '2.23.3'
services:
  nginx:
    image: "nginx"
    container_name: "nginx_compose"
    restart: "always"
    networks:
      - nginx_net
    volumes:
      - /opt/nginx:/usr/share/nginx/html
    environment:
      APP_ENV: dev
    dns:
      - 114.114.115.115
networks:
  nginx_net:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 188.18.0.0/16
          gateway: 188.18.0.1

  

docker-swarm(分布式)

swarm是docker管理docker集群的平台,几乎全部用go语言来完成设计的,它是一群docker宿主机变成一个单一的虚拟主机,swarm使用标准的docker api接口作为其前端的访问入口,换言之,各种形式的dockerclient(compose,docker-py)均可以直接与swarm通信,甚至docker本身都可以很容易的与swarm集成,这大大方便了用户将原本基于单节点的系统移植到swarm上,同时swarm内置了对docker网络插件的支持,用户也很容易的部署跨主机的容器集群服务。

node:运行docker的主机可以主动初始化一个swarm集群或者加入一个已存在的swarm集群,这样这个运行docekr的主机就成为了一个swarm集群节点(node)

task:任务(task)是swarm中最小的调度单位,目前来说就是一个单一的容器。

service:服务(service)是指一组任务的集合,服务定义了任务的属性。服务有两种模式:replicated services按照一定规则在各个工作节点上运行指定个数的任务。global services每个工作节点上运行一个任务。

两种模式通过docker services create的 --mode参数指定。

 

一、集群搭建

1、初始化集群

登陆管理节点,并执行以下命令:docker swarm init --advertise-addr 192.168.113.120

使用docker info可以查看swarm集群状态  docker node ls可以查看集群节点信息

docker service create --replicas 2 -p 80:80 --name nginx_swarm nginx 创建一个服务

docker service inspect --pretty nginx swarm 查看服务状态

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

基于docker swarm 运行portainer

docker service create -p 9000:9000 --replicas 1 --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock --mount type=volume,src=portainer_data,dst=/data portainer/portainer

docker 方式运行portainer

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer/portainer

 

posted @ 2023-10-10 11:04  good-good-luck  阅读(19)  评论(0)    收藏  举报