Microservies自动化.docker-composep

导读:本篇文章讲解 Microservies自动化.docker-composep,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

docker-compose

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排
通过编写docker-compose文件可对多个服务同时进行启动/停止/更新(可定义依赖,按顺序启动服务) 
docker-compose将所管理的容器分为3层结构:

Microservies自动化.docker-composep

docker-compose.yml组成一个project,project里包括多个service,每个service定义了容器运行的镜像(或构建镜像)
Docker-Compose的工程配置文件默认为docker-compose.yml


前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器. 然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多 
个实例,如果每个微服务都要手动启停,
那么效率之低,维护量之大可想而知.而使用 Docker Compose 可以轻松、高效的管理容器, 它是一个用于定义和运行多容器 Docker 的应用程序工具.


三步过程

1)用dockerfile,或者镜像定义应用程序的环境,以便在任何地方复制.
2)在docker-compose.yml中定义组成应用程序的服务,以便它们可以在单独的环境中一起运行.
3)运行docker compose up启动并运行整个应用程序.

docker-compose安装与配置

上传文件docker-compose

Microservies自动化.docker-composep

为该文件添加可执行命令权限

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

查看版本信息

docker-compose -v

Microservies自动化.docker-composep

 docker-compose.yml 配置文件基本介绍

version: 指定 docker-compose.yml 文件的写法格式
Compose目前有三个版本分别为Version 1,Version 2,Version 3,Compose区分Version 1和Version 2(Compose 1.6.0+,Docker Engine 1.10.0+).Version 2支持更多的指 
令.Version 1将来会被弃用.
services:多个容器集合

services: 
    容器1: 
    容器2:


docker-compose 基本指令
project             1             一个微服务项目
service             N             由N个微服务组成 
container           N             而每个微服务又由N个节点组成

image:镜像名称或镜像ID.如果镜像在本地不存在,Compose将会尝试拉取镜像
build:服务除了可以基于指定的镜像,还可以基于一份Dockerfile,在使用up启动时执行构建任务,构建标签是build,可以指定Dockerfile所在文件夹的路径.Compose将会利用 
Dockerfile自动构建镜像,然后使用镜像启动服务容器
hostname:启动高可用(集群)微服务时,必须与代码配置中的spring.profiles属性一致. 
network_mode:配置服务容器的网络模式
environment:环境变量配置,可以用数组或字典两种方式

Microservies自动化.docker-composep

 

在home里面建文件docker-compose.yml文件

Microservies自动化.docker-composep

 再放入以下源码(大家一定要注意格式问题

version: '3'
services:
  nginx:
    container_name: my-nginx
    image: nginx
    ports:
      - 8888:80
    volumes:
      - /home/nginx/html:/etc/nginx/html
      - /home/nginx/conf.d:/etc/nginx/conf.d
      - /home/nginx/log:/var/log/nginx
    restart: always

 docker-compose 基本指令

 构建并启动容器

docker-compose up

启动单个服务

docker-compose up 服务名称

后台启动服务(在第一次开启的时候最好不要开开启后台启动,因为有可能会报错,等能正常运行后再开启后台启动

docker-compose up -d

停止和删除容器、网络、卷、镜像

docker-compose down

启动指定服务或启动所有服务

docker-compose start [服务名称]

停止指定服务或停止所有服务

docker-compose stop [服务名称]

列出所有运行容器

docker-compose ps

进入指定容器

docker-compose exec

删除所有(停止状态的)服务容器

docker-compose rm

查询my-nginx 

Microservies自动化.docker-composep

Microservies自动化.docker-composep

 自定义网络

Microservies自动化.docker-composep

 查看所有网络

Microservies自动化.docker-composep

 引用外部已存在的网络

去docker-compose.yml进行添加

Microservies自动化.docker-composep

此时再次查看可以看到已经变了

 Microservies自动化.docker-composep

 自定义网络(使用以下docker-compose.yml源码)

version: '3'
services:
  nginx:
    container_name: my-nginx
    image: nginx
    ports:
      - 8888:80
    volumes:
      - /home/nginx/html:/etc/nginx/html
      - /home/nginx/conf.d:/etc/nginx/conf.d
      - /home/nginx/log:/var/log/nginx
    restart: always
    networks:
      - test-net
  mysql:
    container_name: my-mysql
    image: mysql:8.0.27
    security_opt:
        - seccomp:unconfined
    ports:
      - 2333:3306
    volumes:
      - /home/mysql/conf/my.cnf:/etc/my.cnf
      - /home/mysql/data:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root123
    networks:
      test-net:
        ipv4_address: 192.168.101.110
networks:
  test-net:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.101.0/24
          gateway: 192.168.101.1

此时我们再次查看my-nginx

Microservies自动化.docker-composep

地址变成了我们yml文件中定义的那个地址

 查看所有网络

Microservies自动化.docker-composep

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/12183.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!