compose

  • 一.docker_compose
  • 1.概述
  • 小结
  • 3.docker compose配置常用字段
  • 4.docker compose常用命令
  • 二.compose编排
  • 1.安装compose
  • 2.下载 compose(软件包直接拖入)
  • 三.使用compose编排,安装运行nginx容器
  • 1.编写yml文件
  • 2.放入相关文件
  • 3.执行yml文件创建容器
  • 4.测试
  • 四.使用compose编排 安装运行tomcat容器
  • 1.创建目录,放入软件包
  • 2.编写dockerfile文件
  • 3.编写YML文件
  • 4.测试


一.docker_compose

1.概述
docker_compose:用于容器编排
按照使用者期望组合的一种方式
统一构建镜像
统一运行为容器

compose:是定义和运行多容器docker应用工具,只需要给compose的配置文件和一个简单的命令就可以创建并运行应用所需的所有容器,而不再需要使用shell脚本来启动容器

小结
  • 定义了一组多个dockerfile文件,基于文件构建为镜像,
  • 再把镜像运行为容器的编排工具
  • 通过简单的命令实现一组操作(需要再YAML文件中定义好)

docker compose :

  • 场景:非常适合组合使用多个容器来进行开放的场景
  • 文件结构:YAML

YAML:是一种标记语言很直观的数据序列化格式

YAML文件格式编写注意

1.不支持制表符Tab建缩进,需要使用空格缩进

2.通常开头缩进两个空格

3字符后缩进1个空格,如:冒号,逗号,短 横杆

4.用# 号进行注释

5.如果包含特殊字符用单引号引起来

6.布尔值必须使用单引号括起来

3.docker compose配置常用字段

字段

描述

build dockerfile context

指定dockerfile文件名构建镜像上下文路径

image

指定镜像

command

执行命令,覆盖默认命令

container name

指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale

deploy

指定部署喝运行服务相关配置,只能在swarm模式使用

environment

添加环境变量

networks

加入网络

ports

暴露容器端口,与-p相同,但端口不能低于60

volumes

挂载宿主机路径或命令卷

restart

重启策略,默认no,always,no-failure,unless-stoped

hostname

容器主机名

4.docker compose常用命令

字段

描述

build

重新构建服务

ps

列出容器

up

创建和启动容器

exec

在容器里面执行命令

scale

指定一个服务容器启动数量

top

显示容器进程

logs

查看容器输出

down

删除容器、网络、数据卷和镜像

stop/start/restart

停止/启动、重启服务

二.compose编排

1.安装compose
  • 以docker环境为基础
yum install docker-ce -y

docker compose images 统一控制版本信息 docker compose windows_docker

2.下载 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

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

mkdir /root/compose_nginx

docker compose images 统一控制版本信息 docker compose windows_docker_02

三.使用compose编排,安装运行nginx容器

1.编写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:
     - cluster
    volumes:
     - ./wwwroot:/usr/local/nginx/html
networks:
  cluster:

docker compose images 统一控制版本信息 docker compose windows_docker_03

2.放入相关文件
mkdir nginx
mkdir wwwroot
echo "this is nginx" > wwwroot/index.html

yum -y install tree
tree ./

docker compose images 统一控制版本信息 docker compose windows_tomcat_04

3.执行yml文件创建容器
docker-compose -f docker-compose.yml up -d

docker compose images 统一控制版本信息 docker compose windows_tomcat_05

docker compose images 统一控制版本信息 docker compose windows_nginx_06

4.测试

docker compose images 统一控制版本信息 docker compose windows_docker_07

docker compose images 统一控制版本信息 docker compose windows_tomcat_08

四.使用compose编排 安装运行tomcat容器
1.创建目录,放入软件包
cd /opt
mkdir compose-tomcat
cd compose-tomcat
mkdir tomcat
cd tomcat
拖入安装包apache-tomcat-8.5.16.tar.gz 、jdk-8u91-linux-x64.tar.gz

docker compose images 统一控制版本信息 docker compose windows_docker_09

2.编写dockerfile文件
vim Dockerfile 

FROM centos:7
MAINTAINER LIC

ADD apache-tomcat-8.5.16.tar.gz /usr/local
ADD jdk-8u91-linux-x64.tar.gz /usr/local

WORKDIR /usr/local

RUN mv apache-tomcat-8.5.16 tomcat
RUN mv jdk1.8.0_91 java

ENV JAVA_HOME /usr/local/java
ENV CLASSPATH $JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
ENV PATH $JAVA_HOME/bin:$PATH

EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]

docker compose images 统一控制版本信息 docker compose windows_nginx_10

3.编写YML文件
vim tomcat-compose.yml

version: '3'
services:
 tomcat:
  hostname: tomcat
  build :
   context: ./tomcat
   dockerfile: Dockerfile
  ports:
   - 7788:8080
  networks:
   - cluster
networks:
 cluster:

docker compose images 统一控制版本信息 docker compose windows_tomcat_11


docker compose images 统一控制版本信息 docker compose windows_tomcat_12

4.测试
docker ps -a

docker compose images 统一控制版本信息 docker compose windows_docker_13

docker compose images 统一控制版本信息 docker compose windows_docker_14