docker-compose是docker编排工具,用于管理docker容器,在如今的微服务时代,一个项目会存在多个服务,使用docker一个个部署操作的话就会很麻烦,如果使用docker编排工具一键部署,统一管理就会便捷很多,同时也提高了开发,运维效率
本文以nginx及.net core项目为例,实验docker-compose容器编排
一、概念
1.什么是容器编排
容器编排即是在docker客户端与docker服务器之前加入一个容器编排,通过容器编排的操作一次执行便可将整个微服务系统一键全部的部署在docker容器
image.png2.services概念
在docker-compose配置中,需要通过services配置镜像和容器,即services为多个镜像和容器的集合,可以用数组或字典两种方式
image.png3.yml配置属性说明
yml文件配置参考地址:https://www.runoob.com/w3cnote/yaml-intro.html
核心配置:
version #指定compose版本 最好是3.0以上版本 目前最新是3.8版本
services #配置容器[容器列表]
nginx: #配置容器标识(唯一编号)
image: #配置容器镜像
ports: #配置容器映射端口号[数组]
networks: #配置容器网络[数组]
networks #网络指定配置
nginx-rmcore: #配置网络名称
external: true #网络自定义
volumes #数据挂载配置
extensions #扩展配置
二、容器编排
1.安装docker-compose
下载地址
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
设置compose权限
chmod +x /usr/local/bin/docker-compose
验证是否安装成功,能正常看到版本号即安装成功
docker-compose --version
2.编写yml配置
ps:需要注意每个配置 :后面需要空一格 ,否则解析不了
version: '3'
services:
dockerdemo:
build: dockerDemo #这里没有镜像所以build构建镜像
ports:
- 8080:80
- 8081:443
nginxdemo:
build: nginx
ports:
- 5000:80
ps:由于nginx手动启动比较麻烦,这里分享一下使用脚本命令启动^ _ ^
nginx脚本配置
#!/bin/sh
/usr/local/nginx/sbin/nginx
/bin/bash -c 'while true; do sleep 200; done'
dockerfile配置
FROM centos
RUN yum -y install gcc make pcre-devel zlib-devel tar zlib
WORKDIR /nginx
COPY nginx-1.15.2.tar.gz /nginx
RUN tar -zxvf nginx-1.15.2.tar.gz
RUN cd nginx-1.15.2 && ./configure && make && make install
EXPOSE 80
#将脚本拷贝到容器目录
COPY nginx.sh /nginx.sh
#设置最大权限
RUN chmod 755 /nginx.sh
#运行脚本
CMD ["/nginx.sh"]
3.构建并启动容器
输入下面命令构建启动容器
docker-compose up -d
构建并启动完成
image.png访问结果:
image.png image.png反向代理可参考:docker nginx反向代理
docker-compose使用命令
build 构建或重新构建容器服务
bundle 从compose文件生成一个Docker包
config 验证并查看compose文件
create 创建容器服务
down 停止并删除容器、网络、映像和卷
events 从容器接收实时事件
exec 在正在运行的容器中执行命令
help 帮助命令
images 镜像列表
kill 杀死容器
logs 查看容器的日志
pause 暂停容器服务
port 输出端口号
ps 容器列表
pull 下载容器服务镜像
push 上传容器服务镜像
restart 容器服务重新开始
rm 删除停止的容器
run 运行一次性命令
scale 设置服务的容器数量
start 开始容器服务
stop 停止容器服务
top 显示正在运行的进程
unpause 暂停容器服务
up 创建并启动容器
version 显示Docker-Compose版本信息
网友评论