文章目录
compose概述
compose是一个用于定义及允许多个Docker容器的工具,主要是通过一个YAML文件进行服务配置
使用Docker Compose不再需要使用Shell脚本来启动容器
Docker Compose非常适合组合使用多个容器进行开发的场景
YAML简介
YAML(语言)的设计目标,就是方便人类读写,它实质上是一种通用的数据串行化格式
它的基本语法规则如下:
大小写敏感
使用缩进表示层级关系
缩进时不允许使用Tab键,只允许使用空格
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
#表示注释
YAML支持的数据结构
对象,键值对的集合
数组,一组按次序排列的值,又称序列
纯量,单个的,不可再分的值
2、安装compose
[root@localhost ~]# cd /usr/local/
[root@localhost local]# rz
[root@localhost local]# ls
bin etc include lib64 sbin src
docker-compose games lib libexec share
[root@localhost local]# chmod +x docker-compose
[root@localhost local]# mv docker-compose /usr/bin
docker compose常用命令
docker compose配置常用字段
使用compose编排
1、使用compose编排 安装运行nginx容器
[root@localhost bin]# cd /opt/
[root@localhost opt]# mkdir compose-nginx
[root@localhost opt]# cd compose-nginx/
[root@localhost compose-nginx]# mkdir nginx
[root@localhost compose-nginx]# cd nginx/
[root@localhost nginx]# rz
[root@localhost nginx]# ls
nginx-1.12.2.tar.gz
[root@localhost nginx]# vim Dockerfile
FROM centos:7
MAINTAINER WXB:<1444831826@qq.com>
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.2.tar.gz /usr/local
WORKDIR /usr/local/nginx-1.12.2
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
RUN echo -e "#!/bin/bash \n /usr/local/nginx/sbin/nginx" > /run.sh
RUN chmod +x /run.sh
EXPOSE 80
CMD ["/run.sh"]
:wq
[root@localhost nginx]# cd ..
[root@localhost compose-nginx]# vim nginx-compose.ym1
version: '3'
services:
nginx:
hostname: nginx
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- 1111:80
networks:
- cluster
volumes:
- ./wxb:/usr/local/nginx/html
networks:
cluster:
:wq
使用compose编排 安装运行tomcat容器
[root@localhost compose-nginx]# cd /opt/
[root@localhost opt]# mkdir compose-tomcat
[root@localhost opt]# cd compose-tomcat/
[root@localhost compose-tomcat]# mkdir tomcat
[root@localhost compose-tomcat]# rz
[root@localhost compose-tomcat]# rz
[root@localhost compose-tomcat]# ls
apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm tomcat
FROM centos:7
MAINTAINER WXB:<1444831826@qq.com>
ADD apache-tomcat-9.0.16.tar.gz /usr/local
ADD jdk-8u201-linux-x64.tar.gz /usr/local
WORKDIR /usr/local
RUN mv apache-tomcat-9.0.16 tomcat
RUN mv jdk1.8.2_01 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"]
:wq
[root@localhost compose-tomcat]# vim Dockerfile
[root@localhost compose-tomcat]# cd ..
version: '3'
services:
tomcat:
hostname: tomcat
build :
context: ./tomcat
dockerfile: Dockerfile
ports:
- 7788:8080
networks:
- cluster
networks:
cluster:
:wq
docker-compose -f tomcat-compose.yml up -d
==真机访问http://IP:7788==