Docker Compose安装

Docker Compose安装

简介:

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

安装

通过官网查找自己版本:https://github.com/docker/compose
运行以下命令以下载 Docker Compose 指定版本:

#安装
$ sudo curl -L "https://github.com/docker/compose/releases/download/版本号/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 -v
Docker Compose version v2.2.2

命令说明

请添加图片描述

我们可以使用docker-compose -h查看帮助命令

build
#服务构建一次,然后标记,默认为project_service。如果 Compose 文件指定了 图像名称,则该图像将使用该名称进行标记,并预先替换任何变量。请参阅 变量插值。如果更改服务Dockerfile或其构建目录的内容,请运行docker compose build以重建它。
$ docker-compose build [options] [SERVICE...] 
convert(config)
#以规范格式解析、解析和渲染撰写文件
$ docker compose config [OPTIONS] [SERVICE...]
cp
#在服务容器和本地文件系统之间复制文件/文件夹,
$ docker compose cp [OPTIONS] SERVICE:SRC_PATH DEST_PATH|-
docker compose cp [OPTIONS] SRC_PATH|- SERVICE:DEST_PATH
create
#为服务创建容器,
$ docker compose create [OPTIONS] [SERVICE...]
down
#停止并删除容器、网络,
$ docker compose down [OPTIONS] [SERVICES]
events
#从容器接收实时事件。
$ docker compose events [OPTIONS] [SERVICE...]
exec
#在正在运行的容器中执行命令。
$ docker compose exec [OPTIONS] SERVICE COMMAND [ARGS...]
images
#列出创建的容器使用的镜像。
$ docker compose images [OPTIONS] [SERVICE...]
kill
#强制停止服务容器。
$ docker-compose kill [options] [SERVICE...]
logs
#显示服务的日志输出。
$ docker-compose logs [options] [SERVICE...]
ls
#列出正在运行的 Compose 项目。
$ docker compose ls [OPTIONS]
pause
#暂停正在运行的服务容器。它们可以通过 取消暂停 
$ docker-compose pause [SERVICE...]
port
#打印端口绑定的公共端口。
$ docker-compose port [options] SERVICE PRIVATE_PORT
ps
#列出 Compose 项目的容器,以及当前状态和公开的端口。
$ docker compose ps
#默认情况下,仅显示正在运行的容器。--all标志可用于包含已停止的容器
$ docker compose ps --all

#格式化输出(--format)默认情况下,该docker compose ps命令使用表格(“漂亮”)格式来显示容器。该--format标志允许您指定输出的替代表示形式。目前,支持的选项有pretty(默认)和json,它将有关容器的信息作为 JSON 数组输出:
$ docker compose ps --format json
#JSON 输出允许您使用其他工具中的信息进行进一步处理,例如,使用jq实用程序{:target=" Blank" rel="noopener" class=" "} 来漂亮地打印 JSON:
$ docker compose ps --format json | jq .

#按状态过滤容器 (--status)
#使用该--status标志按状态过滤容器列表。例如,仅显示正在运行的容器或仅显示已退出的容器:
$ docker compose ps --status=running
$ docker compose ps --status=exited
#按状态过滤容器 (--filter)
#flag是--statusflag的方便简写--filter status=<status> 。下面的示例与上一节中的示例等效,这次使用了标志--filter:
$ docker compose ps --filter status=running
#该docker compose ps命令当前仅支持该--filter status=<status> 选项,但将来可能会添加其他过滤器选项。
pull
#提取与文件中定义的服务关联的映像compose.yaml,但不启动基于这些映像的容器。
#假设你有这个compose.yaml:
services:
  db:
    image: postgres
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
#如果您在与定义服务的文件docker compose pull ServiceName相同的目录中运行,Docker 会提取关联的映像。compose.yaml例如,要调用在我们的示例中配置为数据库服务的 postgres 映像,您可以运行docker compose pull db.
$ docker compose pull db
[+] Running 1/15
 ⠸ db Pulling                                                             12.4s
   ⠿ 45b42c59be33 Already exists                                           0.0s
   ⠹ 40adec129f1a Downloading  3.374MB/4.178MB                             9.3s
   ⠹ b4c431d00c78 Download complete                                        9.3s
   ⠹ 2696974e2815 Download complete                                        9.3s
   ⠹ 564b77596399 Downloading  5.622MB/7.965MB                             9.3s
   ⠹ 5044045cf6f2 Downloading  216.7kB/391.1kB                             9.3s
   ⠹ d736e67e6ac3 Waiting                                                  9.3s
   ⠹ 390c1c9a5ae4 Waiting                                                  9.3s
   ⠹ c0e62f172284 Waiting                                                  9.3s
   ⠹ ebcdc659c5bf Waiting                                                  9.3s
   ⠹ 29be22cb3acc Waiting                                                  9.3s
   ⠹ f63c47038e66 Waiting                                                  9.3s
   ⠹ 77a0c198cde5 Waiting                                                  9.3s
   ⠹ c8752d5b785c Waiting                                                  9.3s
 #docker compose pull将尝试通过构建部分提取服务的映像。如果拉取失败,它会让用户知道必须构建该服务镜像。您可以通过设置--ignore-buildable标志来跳过此操作
push
#推送服务依赖的镜像到 Docker 镜像仓库。

#您正在推送您在本地构建的镜像
#您有权访问构建密钥
#例子:
services:
  service1:
    build: .
    image: localhost:5000/yourimage  ## goes to local registry

  service2:
    build: .
    image: your-dockerid/yourimage  ## goes to your repository on Docker Hub
restart
#重新启动所有已停止和正在运行的服务,或仅重新启动指定的服务。如果您对配置进行更改compose.yml,则运行此命令后不会反映这些更改。例如,对环境变量的更改(在构建容器之后、执行容器的命令之前添加)在重新启动后不会更新。
$ docker-compose restart [options] [SERVICE...]
rm
#删除已停止的服务容器。
#默认情况下,附加到容器的匿名卷不会被删除。您可以使用 覆盖它-v。要列出所有卷,请使用docker volume ls.
#不在卷中的任何数据都会丢失。
#运行不带选项的命令还会删除由以下命令创建的一次性容器docker compose run:
$ docker compose rm
Going to remove djangoquickstart_web_run_1
Are you sure? [yN] y
Removing djangoquickstart_web_run_1 ... done
run
#针对服务运行一次性命令。
#以下命令启动该web服务并bash按照其命令运行:
$ docker compose run web bash
#您与 run 一起使用的命令在新容器中启动,其配置由服务定义,包括卷、链接和其他详细信息。然而,有两个重要的区别:
#首先,传递的命令会run覆盖服务配置中定义的命令。例如,如果 web服务配置以 启动bash,则docker compose run web python app.py用 覆盖它 python app.py。
#第二个区别是该docker compose run命令不会创建服务配置中指定的任何端口。这可以防止端口与已打开的端口发生冲突。如果您确实希望创建服务的端口并将其映射到主#机,请指定--service-ports
$ docker compose run --service-ports web python manage.py shell
#--publish或者,可以使用或选项指定手动端口映射-p,就像使用 docker run 时一样:
$ docker compose run --publish 8080:80 -p 2022:22 -p 127.0.0.1:2021:21 web python manage.py shell
#如果启动配置了链接的服务,则 run 命令首先检查链接的服务是否正在运行,如果停止则启动该服务。一旦所有链接的服务都运行起来,运行就会执行您传递给它的命令。例如,您可以运行:
$ docker compose run db psql -h db -U docker
#这将为链接的db容器打开一个交互式 PostgreSQL shell。
#如果您不希望 run 命令启动链接的容器,请使用以下--no-deps标志:
$ docker compose run --no-deps web python manage.py shell
#如果您想在运行后删除容器并覆盖容器的重新启动策略,请使用以下--rm标志:
$ docker compose run --rm web python manage.py db upgrade
#这会运行数据库升级脚本,并在运行完成后删除容器,即使在服务配置中指定了重新启动策略也是如此。
start
#启动服务的现有容器。
$ docker-compose start [SERVICE...]
stop
#停止运行容器而不删除它们。可以使用 重新启动它们docker compose start。
$ docker-compose stop [options] [SERVICE...]
top
#显示正在运行的进程。
$ docker compose top
unpause
#取消暂停服务的已暂停容器。
$ docker-compose unpause [SERVICE...]
up
#构建、(重新)创建、启动和附加到服务的容器。除非它们已经在运行,否则此命令还会启动任何链接的服务。
#该docker compose up命令聚合每个容器的输出(就像docker compose logs --follow这样做)。
#人们可以选择附加到 using--attach标志的服务子集,或者排除某些服务, --no-attach以防止输出被某些详细服务淹没。当命令退出时,所有容器都将停止。
#运行docker compose up --detach会在后台启动容器并让它们保持运行。
#如果服务存在现有容器,并且服务的配置或映像在容器创建后发生更改,则docker compose up通过停止并重新创建容器(保留已安装的卷)来获取更改。
#要防止 Compose 接受更改,请使用该--no-recreate标志。如果您想强制 Compose 停止并重新创建所有容器,请使用该--force-recreate标志。如果进程遇到错误,则该命令的退出代码为1。
#SIGINT如果使用(ctrl + C) 或中断进程SIGTERM,则容器将停止,退出代码为0。
$ docker-compose up [options] [SERVICE...]
version
#显示 Docker Compose 版本信息
$ docker-compose version

参考文档

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

贪吃的小松鼠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值