docker-compose(代码片段)

噫噫噫呀呀呀 噫噫噫呀呀呀     2022-12-15     243

关键词:

目录

一、Docker-compose 简介

docker compose 给容器做单机编排的
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。

Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡,比如 Consul。

Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API, 就可以在其上利用Compose来进行编排管理。

1. YAML 文件格式及编写注意事项

YAML 是一种标记语言,它可以很直观的展示数据序列化格式,可读性高。类似于 XML数据描述语言,语法比 XML 简单的很多。YAML 数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号 [] 括起来, hash 用花括号 括起来。

使用 YAML 时需要注意下面事项:
●不支持制表符 tab 键缩进,需要使用空格缩进
●通常开头缩进2个空格
●字符后缩进1个空格,如冒号 : 、逗号 , 、横杠 -
●用 # 号注释
●如果包含特殊字符用单引号 ‘’ 引起来
●布尔值必须用引号 “” 括起来

2. Docker Compose配置常用字段

字段                               			描述
build                              			指定 Dockerfile 文件名,
											要指定Dockerfile文件需要在build标签的子级标签中使用dockerfile标签指定
dockerfile                         			构建镜像上下文路径
context                            			可以是 dockerfile 的路径,或者是指向 git 仓库的 url 地址
image                              			指定镜像
command                            			执行命令,覆盖默认命令
container name                     			指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法 scale
deploy                             			指定部署和运行服务相关配置,只能在 Swarm 模式使用
environment                        			添加环境变量
networks                           			加入网络
ports                              			暴露容器端口,与 -p 相同,但端口不能低于 60
volumes                            			挂载宿主机路径或命令卷
hostname                           			容器主机名
restart                            			重启策略,默认 no,always,no-failure,unless-stoped
											no,默认策略,在容器退出时不重启容器。
											on-failure,在容器非正常退出时(退出状态非0),才会重启容器。
											on-failure:3,在容器非正常退出时重启容器,最多重启3次。
											always,在容器退出时总是重启容器。
											unless-stopped,在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器。

3. Docker Compose 常用命令

字段                    					描述
build                   					重新构建服务
ps                      					列出容器
up                      					创建和启动容器	
exec                    					在容器里面执行命令
scale                   					指定一个服务容器启动数量
top                     					显示容器进程
logs                    					查看容器输出
down                    					删除容器、网络、数据卷和镜像
stop/start/restart      					停止/启动/重启服务

4. Docker Compose 文件结构

yum install -y tree
tree /opt/compose_nginx
/opt/compose_nginx/
├── docker-compose.yml				#创建模板脚本
├── nginx
│?? ├── Dockerfile					#创建容器脚本
│?? ├── nginx-1.12.0.tar.gz			#复制源码包
│?? └── run.sh						#启动服务脚本
└── wwwroot
    └── index.html					#站点网页

二、compose 部署

1. Docker Compose 环境安装

Docker Compose 是 Docker 的独立产品,因此需要安装 Docker 之后在单独安装 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
#安装
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose --version

2.准备依赖文件

mkdir -p /opt/compose_nginx/nginx /opt/compose_nginx/wwwroot
cd /opt/compose_nginx/nginx
cp nginx-1.12.0.tar.gz ./

vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx

vim Dockerfile
#基于基础镜像
FROM centos:7
#用户信息
MAINTAINER this is nginx image <wl>
#添加环境包
RUN yum -y update
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
#上传nginx软件压缩包,并解压
ADD nginx-1.12.0.tar.gz /usr/local/src/
#指定工作目录
WORKDIR /usr/local/src/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
#指定http和https端口
EXPOSE 80
EXPOSE 443
//方法一:
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf			#关闭 nginx 在后台运行
#添加宿主机中run.sh到容器中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
//方法二:
ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]


echo "<h1>this is test web</h1>" > /opt/compose_nginx/wwwroot/index.html



3.编写配置文件docker-compose.yml

vim /opt/compose_nginx/docker-compose.yml
version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - 1216:80
      - 1217:443
    networks:
      - lnmp
    volumes:
      - ./wwwroot:/usr/local/nginx/html
networks:
  lnmp:


cd /opt/compose_nginx/
docker-compose -f docker-compose.yml up -d
----------------------------------------------------------------------------------------------------------
-f, --file FILE :使用特定的 compose 模板文件,默认为 docker-compose.yml
-p, --project-name NAME :指定项目名称,默认使用目录名称
-d :在后台运行
----------------------------------------------------------------------------------------------------------

docker ps -a

cd /opt/compose_nginx/
docker-compose ps					#必须在docker-compose.yml所在目录执行此命令

浏览器访问:http://192.168.110.20:1216

docker-compose(代码片段)

目录一、Docker-compose简介1.YAML文件格式及编写注意事项2.DockerCompose配置常用字段3.DockerCompose常用命令4.DockerCompose文件结构二、compose部署1.DockerCompose环境安装2.准备依赖文件3.编写配置文件docker-compose.yml一、Docker-compose简介dockercompos... 查看详情

docker-compose(代码片段)

目录一、Docker-compose简介1.YAML文件格式及编写注意事项2.DockerCompose配置常用字段3.DockerCompose常用命令4.DockerCompose文件结构二、compose部署1.DockerCompose环境安装2.准备依赖文件3.编写配置文件docker-compose.yml一、Docker-compose简介dockercompos... 查看详情

docker-compose介绍,安装和使用(代码片段)

Docker-Compose介绍有时候运行一个镜像需要大量的参数,可以通过Docker-Compose编写这些参数.而且Docker-Compose可以版主我们批量管理容器,这些信息值需要通过一个docker-compose.yml文件去维护即可下载并安装Docker-Compose下载Docker-Compose去githu... 查看详情

docker-compose(代码片段)

Docker-compose一、概述二、YAML文件格式及编写注意事项三、DockerCompose配置常用字段四、DockerCompose命令格式常用命令五、DockerCompose文件结构六、部署compose1.DockerCompose环境安装2.准备依赖文件3.创建dockerfile文件4.编写配置文件docker-com... 查看详情

docker-compose(代码片段)

Docker-compose一、概述二、YAML文件格式及编写注意事项三、DockerCompose配置常用字段四、DockerCompose命令格式常用命令五、DockerCompose文件结构六、部署compose1.DockerCompose环境安装2.准备依赖文件3.创建dockerfile文件4.编写配置文件docker-com... 查看详情

docker快速入门——docker-compose(代码片段)

Docker快速入门——Docker-Compose一、Docker-Compose简介1、Docker-Compose简介Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及... 查看详情

docker-compose部署模板(代码片段)

本章介绍ELK系统docker-compose.yml化的文件docker-compose需要注意不要把docker当做数据容器来使用,数据一定要用volumes放在容器外面不要把docker-compose文件暴露给别人,因为上面有你的服务器信息多用docker-compose的命令去操作,不要用do... 查看详情

docker-compose(代码片段)

#启动服务docker-composestart#停止服务docker-composestop#重启服务docker-composerestart具体语法:Defineandrunmulti-containerapplicationswithDocker.Usage:docker-compose[-f=<arg>...][options][COMMAND][ARGS...]docker 查看详情

docker-compose(代码片段)

#启动服务docker-composestart#停止服务docker-composestop#重启服务docker-composerestart具体语法:Defineandrunmulti-containerapplicationswithDocker.Usage:docker-compose[-f=<arg>...][options][COMMAND][ARGS...]docker 查看详情

docker-compose介绍(代码片段)

docker-compose常用命令Commands:buildBuildorrebuildservicesbundleGenerateaDockerbundlefromtheComposefileconfigValidateandviewthecomposefilecreateCreateservicesdownStopandremovecontainers,networks,images,andvolumeseventsReceiverealtimeeventsfromcontainersexecExecuteacommandinarunningcontainerhelpG... 查看详情

docker-compose容器快速单机编排(代码片段)

Docker-compose一.Docker-compose概述二.YAML文件格式及编写注意事项三.DockerCompose配置常用字段四.DockerCompose常用命令五.DockerCompose文件结构六.compose部署Nginx一.Docker-compose概述•Docker-Compose项目是Docker官方的开源项目,负责实现对Docker... 查看详情

docker-compose容器快速单机编排(代码片段)

Docker-compose一.Docker-compose概述二.YAML文件格式及编写注意事项三.DockerCompose配置常用字段四.DockerCompose常用命令五.DockerCompose文件结构六.compose部署Nginx一.Docker-compose概述•Docker-Compose项目是Docker官方的开源项目,负责实现对Docker... 查看详情

docker-compose安装(代码片段)

@羲凡——只为了更好的活着Docker-compose安装先安装docker才能安装docker-composeDocker-compose安装官网1.把命令从上往下执行即可curl-L"https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname-s)-$(uname-m) 查看详情

docker-compose安装(代码片段)

安装curl-Lhttps://github.com/docker/compose/releases/download/$DockerVersion/docker-compose-`uname-s`-`uname-m`>/usr/local/bin/docker-compose添加执行权限chmod+x/usr/local/bin/docker-compose查看版本看安装的是否正确dock 查看详情

docker-compose容器集群的快速编排(代码片段)

Docker-Compose介绍一、Docker-compose简介二、compose部署1.DockerCompose环境安装2.YAML文件格式及编写注意事项3.DockerCompose配置常用字段4.DockerCompose常用命令5.DockerCompose文件结构总结一、Docker-compose简介____Docker-Compose项目是Docker官方的开源... 查看详情

docker-compose编排(代码片段)

Docker-compose编排Docker-compose编排#------------------------------一:Docker网络通讯#Docker单主机网络通信四种安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、none.host1.host:容器将不会虚拟出自己的网卡,配置自己的IP... 查看详情

docker入门-docker-compose使用(代码片段)

Docker Docker容器大行其道,直接通过dockerpull+启动参数的方式运行比较麻烦,可以通过docker-compose插件快速创建容器1.安装docker-compose安装curl-L"https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname-s)-$(uname- 查看详情

docker-compose构建wordpress(代码片段)

docker-compose构建wordpress直接上docker-compose.yml文件version:‘3‘services:db:image:mysql:5.7volumes:-/data/db_data:/var/lib/mysqlrestart:alwaysenvironment:MYSQL_ROOT_PASSWORD:somewordpressMYSQL_DATABASE:wor 查看详情