博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker三剑客之docker compose
阅读量:3960 次
发布时间:2019-05-24

本文共 3810 字,大约阅读时间需要 12 分钟。

docker三剑客之docker compose

.

docker compose简介

  • 微服务架构的应用系统一般包括若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率是极低的,而且工作量巨大

  • Docker Compose 是一种编排服务,基于python语言开发,是一个用于在Docker上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用

  • 用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建

  • 解决了容器间如何管理编排问题

  • Docker Compose 中有两个重要的概念:

    服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
    项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

  • 可以类比之前的ansible及saltstack,都是为了更方便集群式的部署分布式应用

docker compose安装

.

这种方式比较慢curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose

推荐使用阿里云的,下载速度快。.

把脚本放在/usr/local/bin/下.名字为docker-compose ,加执行权限 ,docker-compose命令就有了。

docker-compose的常用命令

docker-compose 命令 --help              获得一个命令的帮助docker-compose up -d nginx             构建启动nignx容器docker-compose exec nginx bash         登录到nginx容器中docker-compose down                    此命令将会停止 up 命令所启动的容器,并移除网络docker-compose ps                      列出项目中目前的所有容器docker-compose restart nginx           重新启动nginx容器docker-compose build nginx             构建镜像 docker-compose build --no-cache nginx  不带缓存的构建docker-compose top                     查看各个服务容器内运行的进程 docker-compose logs	                   查看服务的输出docker-compose logs -f nginx           查看nginx的实时日志docker-compose images                  列出 Compose 文件包含的镜像docker-compose config                  验证文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 docker-compose events --json nginx     以json的形式输出nginx的docker日志docker-compose pause nginx             暂停nignx容器docker-compose unpause nginx           恢复ningx容器docker-compose rm nginx                删除容器(删除前必须关闭容器,执行stop)docker-compose stop nginx              停止nignx容器docker-compose start nginx             启动nignx容器docker-compose restart nginx           重启项目中的nignx容器

docker-compose.yml属性

.

docker-compose.yml属性Image	: 指定为镜像名称或镜像 ID,如果镜像在本地不存在,Compose 将会尝试拉取这个镜像。Build	: 指定 Dockerfile 所在文件夹的路径。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像。Command	: 覆盖容器启动后默认执行的命令。Links	: 链接到其它服务中的容器。Ports	: 端口映射。Expose	: 暴露端口信息Volumes	: 卷挂载路径设置

创建docker-compose.yml文件(haproxy,nginx)

文件名默认是docker-compose.yml 如果名字不是默认,则加-f参数,指定文件。

[root@server1 ~]# mkdir compose[root@server1 ~]# cd compose/[root@server1 compose]# ls[root@server1 compose]# cat /etc/docker/daemon.json {
"registry-mirrors": ["https://nmcjqb9k.mirror.aliyuncs.com"]}[root@server1 compose]# docker pull nginx[root@server1 compose]# docker pull haproxy[root@server1 compose]# vim docker-compose.yml[root@server1 compose]# mkdir web1[root@server1 compose]# echo web1 > web1/index.html[root@server1 compose]# mkdir web2[root@server1 compose]# echo web2 > web2/index.html[root@server1 ~]# docker inspect haproxy/usr/local/etc/haproxy/haproxy.cfg[root@server1 compose]# mkdir haproxy[root@server1 compose]# cd haproxy/[root@server1 haproxy]# vim haproxy.cfg[root@server1 haproxy]# docker run -d --name demo -v "$(pwd)"/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg haproxy[root@server1 haproxy]# docker logs demo[root@server1 haproxy]# docker rm -f demodemo[root@server1 haproxy]# cd ..[root@server1 compose]# docker-compose up[root@server1 compose]# docker-compose start[root@server1 compose]# docker-compose ps

docker network create mynet

version: "3.9"services:  web1:    image: nginx    networks:      - mynet    volumes:      - ./web1:/usr/share/nginx/html       ####/usr/share/nginx/html : nginx的测试页 ,  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.cfgnetworks:  mynet:

[root@server1 haproxy]# vim haproxy.cfg

[root@server1 compose]# docker-compose stop web1Stopping compose_web1_1 ... done[root@server1 compose]# docker-compose logs web1

转载地址:http://cihzi.baihongyu.com/

你可能感兴趣的文章
LoadRunner之——Java vuser
查看>>
LoadRunner之——场景创建、设置、运行
查看>>
QTP基本使用——Recovery Scenarios
查看>>
Ruby 的优缺点
查看>>
Ruby 教程(一)
查看>>
Ruby 教程(二)
查看>>
Android——简介
查看>>
Ruby 教程(三)
查看>>
Ruby 教程(四)
查看>>
GHOST后只剩下一个分区后的解决方法
查看>>
局部变量、全局变量、对象变量、类变量
查看>>
手动测试 VS 自动测试
查看>>
QTP基本使用——WORD
查看>>
QTP基本使用——Excel
查看>>
QTP基本使用——检查焦点
查看>>
排序算法之一
查看>>
ArrayList与Vector的区别
查看>>
QTP之描述性编程Descriptive Programming(一)
查看>>
面试题目之一
查看>>
File和Dir类介绍(一)
查看>>