欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker compose容器编排

程序员文章站 2022-05-14 20:33:38
...

docker compose工具
compose项目是由docker官方的开源项目,负责实现对docker容器集群的快速编排
compose作用

  • 如果每个服务都要手动启停。那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关联的应用容器,这就是dockerpose

compose有2个重要的概念:

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

docker-compose.yml文件的常用字段
builddockerfilecontext : 指定dockerfile文件名构建镜像上下文件路径
images :指定镜像
command :执行命令,覆盖默认命令
containername :指定容器名称,由于容器名称时唯一的,如果指定自定义名称,则无法scale
depoly : 指定部署和运行服务相关配置,只能在swarm模式shiyong
environment:添加环境变量
networks :添加网络
ports :暴露容器端口,与-p相同 当端口不能低于60
volumes : 挂载宿主机路径或命令卷
restart : 重启策略,默认no,always,no-failure,unless-stoped
hostname : 容器主机名

docker compose常用命令
build :重新构建服务
ps : 列出容器
up :创建和启动容器
exec :在容器里面执行命令
scale :指定一个服务容器启动数量
top : 显示容器进程
logs:查看容器输出
down:删除容器、网络、数据卷和镜像
stop/start/restart :停止/启动/重启服务

安装docker-compose工具
下载docker-compose安装包

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
//移至/usr/bin目录下使得docker-compose在任何目录下都能使用
cp -p docker-compose /usr/bin
//查看版本号
docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3
//创建一个目录
mkdir compose_nginx
cd compose_nginx/
mkdir nginx
cd nginx
vim run.sh
#!/bin/bash
/usr/local//usr/local/nginx/sbin/nginx

vim Dockerfile

FROM centos:7
MAINTAINER this is nginx
RUN yum -y update
RUN yum install -y wget net-tools gcc gcc-c++ make openssl-devel
RUN yum install -y pcre-devel
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.2.tar.gz /usr/local/src
WORKDIR /usr/local/src
WORKDIR nginx-1.12.2
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
#WORKDIR /root/nginx
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]

ls
Dockerfile  nginx-1.12.2.tar.gz  run.sh
cd ..
yum install tree -y
查看目录
tree ./
./
└── nginx
    ├── Dockerfile
    ├── nginx-1.12.2.tar.gz
    └── run.sh
///创建yml文件
vim /root/compose_nginx/docker-compose.yml
version: '3'
services:
  nginx:
   hostname: nginx
   build:
    context: ./nginx
    dockerfile: Dockerfile
   ports:
    - 1216:80
    - 1217:443
   networks:
    - abc
   volumes:
    - ./wwwroot:/usr/local/nginx/html
networks:
  abc:
  
docker-compose -f docker-compose.yml up -d