阅读 231

docker-compose如何自定义配置docker多容器

docker-compose

Compose 简介

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境/镜像。

  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

Compose 安装

$ sudo curl -L "https://github.com/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 --versioncker-compose version 1.24.1, build 4667896b
复制代码

创建 docker-compose.yml

# yaml 配置

version**:** '3'services: web:  image: hub.cangku.com/aaa/mysql:3.0.0   # 构建好的镜像  ports**:**   - "5000:5000" redis:  image**:** "redis:alpine" mysql-server:    image: hub.cangku.com/aaa/mysql:3.0.0    container_name: mysql-server    environment:      MYSQL_DATABASE: "netops_proxy"      MYSQL_USER: "netops"      MYSQL_PASSWORD: "netops_ps"      MYSQL_ROOT_PASSWORD: "root_NetOps.2019"      TZ: Asia/Shanghai    command: ['--character-set-server=utf8', '--collation-server=utf8_bin']    volumes:      - /data/mysql:/var/lib/mysql    ports:      - 23307:3306
复制代码

使用 Compose 命令构建和运行您的应用

在测试目录中,执行以下命令来启动应用程序:

docker-compose up
复制代码

如果你想在后台执行该服务可以加上 -d 参数:

docker-compose up -d
复制代码

yml 配置指令参考

version

build

images

image: redisimage: ubuntu:14.04image: tutum/influxdbimage: example-registry.com:4000/postgresqlimage: a4bc65fd # 镜像id
复制代码

cap_add,cap_drop

cgroup_parent

command

container_name

depends_on

deploy

devices

entrypoint

environment

expose

logging

配置如下:

logging:  driver: json-file  options:    max-size: "200k" # 单个文件大小为200k    max-file: "10" # 最多10个文件

driver: "json-file"driver: "syslog"driver: "none"
复制代码

network_mode

network_mode: "bridge"network_mode: "host"network_mode: "none"network_mode: "service:[service name]"network_mode: "container:[container name/id]"
复制代码

volumes

将主机的数据卷或着文件挂载到容器里。

version: "3.7"services:  db:    image: postgres:latest    volumes:      - "/localhost/postgres.sock:/var/run/postgres/postgres.sock"      - "/localhost/data:/var/lib/postgresql/data"
复制代码

下面介绍一些在使用 Docker Compose 时常用的命令。

1) docker-compose up

用于部署一个 Compose 应用。

默认情况下该命令会读取名为 docker-compose.yml 或 docker-compose.yaml 的文件。

当然用户也可以使用 -f 指定其他文件名。通常情况下,会使用 -d 参数令应用在后台启动。

2) docker-compose stop

停止 Compose 应用相关的所有容器,但不会删除它们。

被停止的应用可以很容易地通过 docker-compose restart 命令重新启动。

3) docker-compose rm

用于删除已停止的 Compose 应用。

它会删除容器和网络,但是不会删除卷和镜像。

4) docker-compose restart

重启已停止的 Compose 应用。

如果用户在停止该应用后对其进行了变更,那么变更的内容不会反映在重启后的应用中,这时需要重新部署应用使变更生效。

5) docker-compose ps

用于列出 Compose 应用中的各个容器。

输出内容包括当前状态、容器运行的命令以及网络端口。

6) docker-compose down

停止并删除运行中的 Compose 应用。

它会删除容器和网络,但是不会删除卷和镜像。

文章分类
后端
文章标签