Docker 三剑客之 Compose

Compose 的默认管理对象是服务栈,通过子命令对栈中的多个服务进行便捷的生命周期管理。

任务(task)

一个容器被称为一个任务。任务拥有独一无二的ID,在同一个服务中的多个任务序号依次递增。

服务(service)

某个相同应用镜像的容器副本集合,一个服务可以横向扩展为多个容器实例。

服务栈(stack)

由多个服务组成,相互配合完成特定业务,如 Web 应用服务、数据库服务共同构成 Web 服务栈,一般由一个 docker-compose.yml 文件定义。

安装 compose

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

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

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

docker-compose --version

操作命令

构建项目中的服务容器

docker-compose  build --force-rm

校验和查看 compose 文件的配置信息

docker-compose config

停止服务栈

docker-compose down

列出服务所创建的镜像

docker-compose images

 强制停止服务器

docker-compose kill

查看服务容器的输出

docker-compose logs

暂停一个服务容器

docker-compose pause

列出项目中目前的所有容器

docker-compose ps

拉取服务依赖的镜像

docker-compose pull

推送服务创建的镜像到镜像仓库

docker-compose push

重启项目中的服务

docker-compose restart

停止已经处于运行状态的容器,但不删除它

docker-compose stop

删除所有(停止状态的)容器

docker-compose rm -f

在指定容器上执行一个命令

docker-compose run  nginx echo "hello world"

设置指定服务运行的容器个数

docker-compose  scale nginx=6

启动已经存在的服务容器

docker-compose start

显示服务栈中正在运行的进程信息

docker-compose top

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

docker-compose unpause

打印版本信息

docker-compose version

启动项目

docker-compose up -d

说明:

up 命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作

链接的服务都将会被自动启动,除非已经处于运行状态。

docker-compose.ym 配置

指定 Dockerfile 所在文件夹的路径

version: '3'

services:

    app:

        build: /path/to/build/dir

覆盖容器启动后默认执行的命令

common: echo "hello world"

指定容器名称

container_name:docker-web-container

指定多个服务之间的依赖关系

depends_on:db

自定义 DNS 服务器

dns:8.8.8.8

配置 DNS 搜索域

dns_search:example.com

覆盖容器中默认的入口命令

entrypoint: python app.py

从文件中获取环境变量

env_file: .env

暴露端口,但不映射到宿主机,只被连接的服务访问

expose:

    - "3000"

    - "8000"

指定为镜像名称或镜像 ID

imgae:ubuntu

设置网络模式

network: "none"

network: "bridge"

network: "host"

network: "servuce:[service.name]"

network: "container:[name or id]"

所加入的网络

services:

    web:

        networks:

            web_net

跟主机系统共享进程命名空间

pid: "host"

暴露端口信息

ports:

    - "3000"

    - "8000:8000"

    - "49100:22"

    - "127.0.0.1:8001:8001"

数据卷所挂载路径

volumes:

    - /var/lib/mysql

    - cache/:tmp/cache

    - ~/config:/etc/config/:ro

指定重启策略

restart:always

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

协享科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值