容器自动编排工具----Docker-compose
容器自动编排工具----Docker-compose
在生产环境中经常使用Docker Compose来定义和运行多个Docker容器,不仅如此再也不需要通过shell脚本来启动容器。然而Docker compose需要通过YAML语言来编写。
YAML语言的使用规则
我们在编写docker compose时需要注意一下几点:
yaml语言:1.不支持tab制表符的缩进。
2.通常开头需要空两格。
3.字符需要缩进一个,如冒号、逗号、横杆。
4.可以用井号进行注释。
5.特殊字符需要用单引号引起来。
6.布尔值需要用用好引起来。
docker compose在配置时的常用字段和命令
(1)常用字段:
(2)常用命令:
(3)命令说明
1、基本使用格式
docker-compose [options] [COMMAND] [ARGS…]
2、docker-compose选项
1):–verbose 输出更多调试信息
2):–version 打印版本并推出
3):-f,–file FILE 使用特定的compose模板文件,默认为docker-compose.yml
4):-p,–project-name NAME 指定项目名称,默认使用目录名称
三、编排实例
将docker-compose复制到/usr/bin目录下,并授权
[root@localhost ~]# mv docker-compose /usr/bin
[root@localhost bin]# chmod +x docker-compose
创建nginx工作目录
[root@localhost ~]# mkdir -p /compose_nginx/nginx && cd /compose_nginx/nginx
[root@localhost nginx]# vim Dockerfile
FROM centos:7
MAINTAINER wu
RUN yum -y update
RUN yum -y install make gcc gcc-gcc pcre-devel zlib-devel
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.2.tar.gz /usr/local/src
WORKDIR /usr/local/src/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
##关闭nginx的守护进程,否则会和容器的守护进程冲突
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
[root@localhost nginx]# vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx
[root@localhost nginx]# ll
总用量 968
-rw-r--r--. 1 root root 595 11月 30 14:20 Dockerfile
-rw-r--r--. 1 root root 981687 11月 5 15:24 nginx-1.12.2.tar.gz
-rw-r--r--. 1 root root 40 11月 30 14:22 run.sh
创建编辑 yml 文件:
[root@localhost compose_nginx]# vim 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:
编写网页文件
[root@localhost compose_nginx]# mkdir wwwroot
[root@localhost compose_nginx]# cd wwwroot/
[root@localhost wwwroot]# vim index.html
[root@localhost wwwroot]#
<h1>This is Web!</h1>
此时,可以用 tree 命令,查看一下根目录下的文件结构:
[root@localhost compose_nginx]# tree ./
./
|-- docker-compose.yml
|-- nginx
| |-- Dockerfile
| |-- nginx-1.12.2.tar.gz
| `-- run.sh
`-- wwwroot
`-- index.html
2 directories, 5 files
执行开启:
[root@localhost compose_nginx]# docker-compose -f docker-compose.yml up -d
查看能否正常访问