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
推荐阅读
-
Redis快速部署为Docker容器的实现方法
-
一行命令安装docker和docker-compose(CentOS7)
-
Docker如何使用link建立容器之间的连接
-
在Docker上用Nacos1.3容器连接MySQL5.6和8.0.18容器进入持久化的具体操作(Nacos单机版)
-
DockerPHP: 基于Docker容器化PHP开发环境解决方案
-
在Docker容器中使用docker命令
-
不同物理机中的Docker容器互连(Openvswitch)
-
docker/compose中links/external_links的区别
-
Docker容器安装的mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'
-
Docker配置本地镜像与容器的存储位置