docker-compose容器编排工具——创建nginx服务容器

一、Docker compose简介

1.1 docker compose的应用需求

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。
使用前面介绍的Dockerfile文件可以很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。

例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。

而docker compose工具就可以实现这些服务的编排,统一管理这些容器服务,提高管理和维护的效率,通常就应用在一组需要关联的应用容器得创建上。
compose的两个重要概念:

  • project项目:由一组相关联饿应og器组成的一个完整业务单元,在docker-compose.yml中定于
  • services服务:一个应用的容器,可以包含多个运行相同镜像的容器的实例

1.2 docker-compose.yml文件常用字段

在这里插入图片描述

文件格式及编写注意事项

  • 不支持制表符tab键缩进,需要使用空格缩进
  • 通常开头缩进2个空格
  • 字符后缩进1个空格,如冒号、逗号、横杆
  • 用#号注释
  • 如果包含特殊字符用单引号引起来
  • 布尔值必须用引号括起来

1.3 docker-compose常用命令

docker-compose [options] [COMMAND] [ARG...]

//docker-compose选项:
  --verbose输出更多调试信息
  --version打印版本并退出
  -f, -file FILE使用特定的compose模板文件,默认为docker-compose.yml
  -p, --project-name NAME指定项目名称,默认使用目录名称
//举例:
docker-compose -f docker-compose.yml up -d

在这里插入图片描述

二、docker compose案例搭建nginx服务

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

更改compose工具路径,使其可以全局使用

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

创建一个compose总目录,目录下包含以下文件

[root@server1 compose-nginx]# tree ./
./
├── docker-compose.yml
├── nginx
│   ├── Dockerfile
│   ├── nginx-1.12.2.tar.gz
│   └── run.sh
└── wwwroot
    └── index.html

首先创建nginx目录,用于创建nginx镜像,见这篇文章 nginx的dockfile
创建yml文件,即用compose工具编排nginx容器的创建运行

[root@server1 compose-nginx]# vi docker-compose.yml 
version: '3'  #冒号后有空格
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx   #指定Dockerfile目录,当前目录下的nginx内
      dockerfile: Dockerfile
    ports:
      - 1216:80   #冒号后无空格,是端口映射,-后有空格
      - 1217:443
    networks:
      - abc    #新的网络空间,可ifconfig查看
    volumes:    #与宿主目录共享的数据卷,用于发布nginx网页
    - ./wwwroot:/usr/local/nginx/html
networks:   
  abc:
 #整个compose工具的网络空间,自定义名称abc,compose工具编排的服务都是用这个网络,处于同于网段,172.18.0.0网段

使用docker-compose命令执行编排容器,-f 向yml文件位置

docker-compose -f /root/compose-nginx/docker-compose.yml up -d  

创建网页站点文件,wwwroot目录会自动创建,进入目录

[root@server1 compose-nginx]# cd wwwroot/
[root@server1 wwwroot]# vi index.html 
<h1>hello this is my web!</h1>

验证
查看镜像和容器,并访问nginx服务

[root@server1 compose-nginx]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
compose-nginx_nginx   latest              29c47493dea5        37 seconds ago      447MB
[root@server1 compose-nginx]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                                         NAMES
f196696d8caa        compose-nginx_nginx   "/run.sh"           57 seconds ago      Up 55 seconds       0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp   compose-nginx_nginx_1

访问192.168.247.130:1216
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值