社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker Compose 容器编排配置详解!!

小爱人 • 4 年前 • 389 次点击  


定义

Docker Compose是容器编排工具,用来定义和运行由多个容器组成的应用。使用 compose,可以通过
yaml文件定义应用程序的各个服务,并由单个命令完成应用的创建和启动。允许用户在一个模板(yaml格式)中定义一组相关联的容器,会根据–link等参数,对启动的优先级进行排序。

mark

一:Docker Compos容器编排

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

文件格式及编写注意事项

  • 不支持制表符tab键缩进,需要使用空格缩进

  • 通常开头缩进两个空格

  • 字符后缩进1个空格,如冒号、逗号、横杆

  • 用#号注释

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

  • 布尔值必须用引号括起来

1.1:Docker Compose配置常用字段

mark

1.2:Docker Compose常用命令

docker-compose -h                           # 查看帮助
docker-compose up                           # 创建并运行所有容器
docker-compose up -d                        # 创建并后台运行所有容器
docker-compose ps                           # 显示所用容器信息
docker-compose -f docker-compose.yml up -d  # 指定模板
docker-compose down                         # 停止并删除容器、网络、卷、镜像。
docker-compose rm                           # 删除容器
docker-compose logs                         # 查看容器输出日志
docker-compose pull                         # 拉取依赖镜像
dokcer-compose config                       # 检查配置
dokcer-compose config -q                    # 验证yaml配置文件是否正确,有问题才有输出
docker-compose pause                        # 暂停容器
docker-compose unpause                      # 恢复暂停
docker-compose restart                      # 重启服务
docker-compose start                        # 启动服务
docker-compose stop                :         # 停止服务
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

1.3:Compose命令说明

  • 基本的使用格式
docker-compose [options][COMMAND]


    
[ARGS...]
  • 1
  • 1
  • docker-compose选项
--verbose    输出更多调试信息
--version     打印版本并退出
-f,--file FILE使用特定的compose模板文件,默认为docker-compose.yml
-p,--project-name NAME指定项目名称,默认使用目录名称
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

二:编排实例

2.1:下载docker-compose

[root@localhost ~]# rz -E
rz waiting to receive.

#给下载好的docker-compose赋予权限
[root@localhost ~]# chmod +x docker-compose 

#将下载好的docker-compose复制到/usr/local/bin目录下
[root@localhost ~]# cp -p docker-compose /usr/local/bin/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.2:创建工作目录

(将nginx软件包拷贝到nginx目录下)

[root@localhost compose_nginx]# mkdir nginx
[root@localhost compose_nginx]# cd nginx/
[root@localhost nginx]# vim Dockerfile

FROM centos:7
RUN yum -y update
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.0.tar.gz /usr/local/src
WORKDIR /usr/local/src
WORKDIR nginx-1.12.0
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
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

#把nginx包复制到nginx目录
[root@localhost nginx]# ls
Dockfile  nginx-1.12.0.tar.gz  run.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

2.3:创建编辑 yml 文件

[root@localhost nginx]# cd ..
[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:
     - cluster
    volumes:
     - ./wwwroot:/usr/local/nginx/html
networks:
  cluster:  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2.4:执行开启,tree查看结构

#执行开启
[root@localhost compose_nginx]# docker-compose -f docker-compose.yml up -d

[root@localhost compose_nginx]# ls
docker-compose.yml  nginx  wwwroot

#在站点目录下创建一个网页,用浏览器访问是否可以正常显示
[root@localhost compose_nginx]# cd wwwroot/
'//编写站点信息'
[root@localhost wwwroot]# vim index.html

<h1>this is shuai web</h1>

#下载tree查看组织结构
[root@localhost compose_nginx]# yum install tree -y

[root@localhost compose_nginx]# tree ./
./
├── docker-compose.yml
├── nginx
   ├── Dockerfile
   ├── nginx-1.12.0.tar.gz
   └── run.sh
└── wwwroot
    └── index.html
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 查看镜像和容器是否都创意成功:
[root@localhost compose_nginx]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
compose_nginx_nginx   latest              178d32644ae3        13 minutes ago      480MB
centos                7                   7e6257c9f8d8        6


    
 weeks ago         203MB

#查看容器
[root@localhost compose_nginx]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                                         NAMES
0874ae4fe802        compose_nginx_nginx   "/run.sh"           13 minutes ago      Up 13 minutes       0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp   compose_nginx_nginx_1
8fb37f271c31        centos:7              "/bin/bash"         2 hours ago         Up 2 hours                                                      niu
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.5:浏览器访问(本机IP地址为):20.0.0.42:1216

mark
本次实验结束感谢观看.

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/73790
 
389 次点击