Docker -Compose的知识点总结

Docker -Compose的基本介绍


Docker-Compose是Docker官方开源的项目,负责实现对Docker容器的快速编排,它是由python编写的

#说下Docker-Compose里的两个基本概念
#服务(service):一个应用容器,也就是docker容器,
#项目(project):由一组关联的容器组成的一个完整业务单元

作用: 方便对多个服务进行统一的管理,如果有好多个服务,一个个run运行,那是不是 有点对不起自己?

#Docker-Compose使用Yaml文件来进行管理
#yaml文件的注意点
#大小写敏感,缩进表示层级关系
#缩进空格数不要求
#由冒号分隔键值对

Docker-Compose的安装和使用

下载并设置执行权限

#下载

#这个比较慢,换成国内的下载地址

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#换成国内的地址

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

#另外的安装方法,由于它是由python编写的,可以使用pip install docker-compose安装

#设置权限

sudo chmod +x /usr/local/bin/docker-compose

Docker -Compose的知识点总结

常用命令

docker-compose命令格式

#常用的参数说明

-f file #指定compose模板文件,默认是docker-compose.yml

-p name #指定项目名称

-v # 打印版本

--log-level level #指定日志级别(debug,info,warning,error,critical)

-h #帮助信息

docker-compose up命令

#构建,启动,管理容器服务

#常用参数如下:

-d #后台运行

--force-recreate # 强制重新创建容器

--build #在启动容器前构建服务镜像

-remove-orphans #删除服务中没有在compose文件中定义的容器

docker-compse ps 命令

#列出项目中所有的容器

#常用参数

-q #只显示ids

--services #显示服务

docker-compose stop 命令

#停止正在运行的容器

#参数如下:

-t timeout #停止容器超时的时间

docker-compose -h命令

docker-compose down 命令

#停止容器服务和删除容器,网络,卷,镜像

--rmi type #删除容器

'all': #删除所有

'local': #删除 镜像名为空的镜像

-v, --volumes #删除在compose文件中定义的数据卷包含匿名卷

--remove-orphans #删除服务中没有在compose定义的容器

-t, --timeout TIMEOUT #超时时间

docker-compose logs 命令

#显示服务容器的日志

--no-color Produce monochrome output.

-f, --follow #实时显示日志

-t, --timestamps #显示时间

--tail="all"

docker-compose build 命令

#构建项目中的服务容器

--compress #压缩

--force-rm #强制删除

--no-cache #不使用缓存

--pull #构建时使用最新的镜像

-m, --memory MEM #构建时设置内存大小

--build-arg key=val #为服务设置build-time变量

docker-compose pull 命令

#拉取服务依赖的镜像

--ignore-pull-failures #忽略拉取时的失败信息

--parallel #多个镜像同时拉取

-q, --quiet #拉取时不打印信息

--include-deps #包含的依赖

docker-compose restart 命令

#重启项目中的服务

#常用参数:

-t timeout #指定重启超时时间

docker-compose rm 命令

#删除已停止的容器服务

#常用参数

-f #强制删除

-s #停止容器

-v #删除容器挂载的数据卷

docker-compose start命令

docker-compose run命令

#启动一个服务

#常用参数

-d #后台运行

--name name #指定名称

-l key=val #设置label标签

-e key=val #设置环境变量

--entrypoint cmd #覆盖容器里的命令

--rm #启动后删除

-v --volume=[] #挂载数据卷

-w --workdir="" #工作目录

docker-compose pause 命令

#暂停一个服务容器

docker-compose kill 命令

#强制删除服务容器

#参数

-s signal #发送信号到服务容器

docker-compose config 命令

#验证并查看compose文件配置

–resolve-image-digests #将镜像标签标记为摘要

-q, –quiet #只验证配置,不输出。 当配置正确时,不输出任何内容,当文件配置错误,输出错误信息

–services #打印服务名,一行一个

–volumes #打印数据卷名,一行一个

docker-compose create 命令

#为服务创建容器

--force-recreate #强制重新创建

--no-recreate #如果容器存在,则不需要各不相关创建

--no-build #即使镜像不存在也不创建

--build #创建容器前,生成镜像

docker-compose scale命令

#指定服务运行的容器个数,通过service=num的参数来设置数量

docker-compose exec 命令

#在一个运行中的容器里执行命令

#常用参数

-d #后台运行

--privileged #以最高权限运行

-u user #指定用户运行指定命令

-index=index #当一个服务拥有多个容器时,可通过该参数登录到该服务下的任何服务

-e key=val #设置环境变量

-w --workdir="" #设置工作目录

docker-compose port 命令

#显示某个容器端口所映射的公共端口

#参数

–protocol=proto,指定端口协议,TCP(默认值)或者UDP

–index=index,如果同意服务存在多个容器,指定命令对象容器的序号(默认为1)

docker-compose push 命令

#推送服务依赖的镜像

#参数

--ignore-push-failures #忽略推送错误

docker-compose unpause 命令

#恢复处于暂停状态中的服务

Docker-Compose模板文件的说明


官方地址:

https://docs.docker.com/compose/compose-file/compose-file-v3/

docker-compose.yaml

#简单说:docker-compose.yaml文件只包含三层数据

#版本

#服务

#公共配置

官方案例

version: "3.9" #版本

services: #服务层

服务名:

服务配置

服务名2:

服务配置2

networks:

网络配置

volumes:

挂载数据配置

体验:官网小案例:python计数器

创建目录

mkdir composetest

cd composetest

创建一个app.py文件

import time

import redis

from flask import Flask

app = Flask(__name__)

cache = redis.Redis(host='redis', port=6379)

def get_hit_count():

retries = 5

while True:

try:

return cache.incr('hits')

except redis.exceptions.ConnectionError as exc:

if retries == 0:

raise exc

retries -= 1

time.sleep(0.5)

@app.route('/')

def hello():

count = get_hit_count()

return 'Hello World! I have been seen {} times. '.format(count)

创建 requirements.txt

flask

redis

创建Dockerfile文件

# syntax=docker/dockerfile:1

FROM python:3.7-alpine

WORKDIR /code

ENV FLASK_APP=app.py

ENV FLASK_RUN_HOST=0.0.0.0

RUN apk add --no-cache gcc musl-dev linux-headers

COPY requirements.txt requirements.txt

RUN pip install -r requirements.txt

EXPOSE 5000

COPY . .

CMD ["flask", "run"]

创建docker-compose.yml

version: "3.3" #我这里使用了3.3版本,由于我docker版本不是最新的,版本需要对应上才可以

services:

web:

build: .

ports:

- "5000:5000"

redis:

image: "redis:alpine"

当前目录下的文件如下

Docker -Compose的知识点总结

运行 docker-compose up

我这里在安装gcc时,时间有点久,我放弃了......

展开阅读全文

页面更新:2024-03-01

标签:知识点   端口   容器   后台   命令   定义   权限   常用   参数   版本   文件   时间   目录   项目   官方   数据   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top