写作网站保底和全勤的区别wordpress 心情评论插件
Docker Compose常用命令
- 安装docker-comose
- docker-compose配置文件及常用指令
- yaml 文件级
- docker-compose.yml配置文件示例
 
- docker compose常用命令
- 启动服务
- 停止服务
- 重启服务
- 查看运行容器列表
- 查看服务日志
- 构建镜像
- docker-compose rm删除
 
 
安装docker-comose
# 声明版本
VER=2.35.1# 下载二进制程序
wget -c https://github.com/docker/compose/releases/download/v$VER/docker-compose-linux-x86_64# 创建bin目录
mkdir -p $HOME/bin# 移动到bin
mv docker-compose-linux-x86_64 ./bin/docker-compose# 授予执行权限
chmod +x ./bin/docker-compose# 查看docker-compose版本
docker-compose -v

docker-compose配置文件及常用指令
Docker Compose 使用 YAML 文件来定义多服务的应用。YAML 是 JSON 的一个子集,因此也可以使用JSON。
Docker Compose 默认使用文件名 docker-compose.yml。当然,也可以使用 -f 参数指定具体文件。
yaml 文件级
Docker Compose 的 YAML 文件包含 4 个一级 key:version、services、networks、volumes
- version 是必须指定的,而且总是位于文件的第一行。它定义了 Compose 文件格式(主要是 API)的版本。注意,version 并非定义 Docker Compose 或 Docker 引擎的版本号。
- services 用于定义不同的应用服务。上边的例子定义了两个服务:一个名为 lagou-mysql数据库服 务以及一个名为lagou-eureka的微服。Docker Compose 会将每个服务部署在各自的容器中。
- networks 用于指引 Docker 创建新的网络。默认情况下,Docker Compose 会创建 bridge 网络。 这是一种单主机网络,只能够实现同一主机上容器的连接。当然,也可以使用 driver 属性来指定不 同的网络类型。
- volumes 用于指引 Docker 来创建新的卷。
docker-compose.yml配置文件示例
services: # 定义服务confluence: # 定义 confluence 服务#  8.5.19 长期维护版本#  9.2.1 最新版本image: omaidb/confluence:8.5.19 # 使用的confluence长期维护版 镜像及其版本container_name: confluence-srv # 容器名称environment: # 设置环境变量- TZ=Asia/Shanghai # 设置时区为上海#      - JVM_MINIMUM_MEMORY=1g # JVM 最小内存#      - JVM_MAXIMUM_MEMORY=12g # JVM 最大内存#      - JVM_CODE_CACHE_ARGS='-XX:InitialCodeCacheSize=1g -XX:ReservedCodeCacheSize=8g' # JVM 代码缓存参数# 定义服务依赖depends_on:- postgres # 依赖 postgres 服务ports: # 映射端口- "80:8090" # 将宿主机的 8090 端口映射到容器的 8090 端口volumes: # 定义数据卷- home_data:/var/confluence # 将数据卷挂载到容器的 /var/confluence 目录restart: always # 设置容器始终重启策略networks: # 指定网络- network-bridge # 使用 network-bridge 网络# 定义名为 postgres 的服务postgres:image: postgres:15.4 # 使用 postgres 15.4 版本的镜像container_name: postgres-confluence # 容器名称healthcheck: # 健康检查配置test: ["CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root"] # 检查 PostgreSQL 服务是否可用timeout: 45s # 健康检查的超时时间为 45 秒interval: 10s # 健康检查的间隔时间为 10 秒retries: 10 # 健康检查失败后重试的次数为 10 次environment: # 定义环境变量- TZ=Asia/Shanghai # 设置时区为上海- POSTGRES_USER=root # PostgreSQL 的默认用户名为 root- POSTGRES_PASSWORD=123456 # PostgreSQL 的默认密码为 123456- APP_DB_USER=confluence # 应用程序的数据库用户名为 confluence- APP_DB_PASS=123456 # 应用程序的数据库密码为 123456- APP_DB_NAME=confluence # 应用程序的数据库名称为 confluencevolumes: # 定义数据卷# - ./db:/docker-entrypoint-initdb.d/ # 将本地 ./db 目录挂载到容器的 /docker-entrypoint-initdb.d/ 目录- postgres_data:/var/lib/postgresql/data # 将本地 /data/postgres 目录挂载到容器的 /var/lib/postgresql/data 目录ports: # 定义端口映射- 5432:5432 # 将本地的 5432 端口映射到容器的 5432 端口restart: always # 服务失败时总是重启networks: # 指定网络- network-bridge # 使用 network-bridge 网络networks: # 定义网络network-bridge: # 定义名为 network-bridge 的网络driver: bridge # 使用 bridge 驱动volumes: # 定义数据卷home_data: # 定义名为 home_data 的数据卷external: false # 数据卷为内部创建postgres_data: # 定义名为 postgres_data 的数据卷external: false # 数据卷为内部创建
docker compose常用命令
| 命令 (Command) | 主要功能 (Description) | 常用选项 (Common Options) | 示例 (Example) | 
|---|---|---|---|
| up | 构建、(重新)创建、启动并关联服务相关的容器。 | -d: 后台运行 (Detached mode)--build: 强制重新构建镜像--force-recreate: 强制重新创建容器--no-deps: 不启动链接的服务 | docker-compose up -ddocker-compose up --builddocker-compose up <service_name> | 
| down | 停止并移除容器、网络、卷和镜像。 | -v,--volumes: 同时移除数据卷--rmi <type>: 移除镜像 (all或local)--remove-orphans: 移除未在 compose 文件中定义的服务的容器 | docker-compose downdocker-compose down -v | 
| start | 启动已经存在的服务容器。 | docker-compose start <service_name>docker-compose start | |
| stop | 停止正在运行的服务容器,但不删除它们。 | -t, --timeout <seconds>: 停止超时时间 (默认 10s) | docker-compose stop <service_name>docker-compose stop | 
| restart | 重启服务容器。 | -t, --timeout <seconds>: 重启/停止超时时间 | docker-compose restart <service_name>docker-compose restart | 
| ps | 列出 Compose 项目中的容器。 | -q: 只显示容器 ID--services: 只列出服务名称-a,--all: 显示所有容器 (包括已停止的) | docker-compose psdocker-compose ps -q | 
| logs | 查看服务容器的日志输出。 | -f,--follow: 持续跟踪日志输出--tail <N>: 显示最后 N 行日志-t,--timestamps: 显示时间戳 | docker-compose logs -f <service_name>docker-compose logs --tail 50 | 
| build | 构建或重新构建服务的镜像。 | --no-cache: 构建镜像时不使用缓存--pull: 始终尝试拉取更新的基础镜像 | docker-compose build <service_name>docker-compose build --no-cache | 
| pull | 拉取服务依赖的镜像。 | --ignore-pull-failures: 拉取失败时继续-q,--quiet: 只显示进度,不输出详细信息 | docker-compose pulldocker-compose pull <service_name> | 
| exec | 在正在运行的容器中执行命令。 | -d: 分离模式运行-T: 禁用伪 TTY 分配 (例如用于管道)-u,--user <user>: 指定用户 | docker-compose exec <service_name> bashdocker-compose exec -T db psql -U user -d dbname | 
| run | 在新容器中运行一次性命令。 | --rm: 命令结束后移除容器-e <KEY=VAL>: 设置环境变量-v <host:cont>: 挂载卷--service-ports: 映射服务端口 | docker-compose run --rm web python manage.py migratedocker-compose run -e DEBUG=1 web | 
| config | 验证和查看 Compose 文件配置。 | -q,--quiet: 只验证配置,无错误时不输出--services: 打印服务名称列表--volumes: 打印卷名称列表 | docker-compose configdocker-compose config -q | 
| rm | 删除已停止的服务容器。 | -f,--force: 强制删除-s,--stop: 在删除前先停止容器-v: 同时删除关联的匿名卷 | docker-compose rmdocker-compose rm -fsv | 
| pause | 暂停服务中的容器进程 (利用 cgroup freezer)。 | docker-compose pause <service_name> | |
| unpause | 恢复服务中被暂停的容器进程。 | docker-compose unpause <service_name> | |
| kill | 通过发送 SIGKILL 信号强制停止服务容器。 | -s <signal>: 指定发送的信号 (默认 SIGKILL) | docker-compose kill <service_name>docker-compose kill -s SIGTERM web | 
通用选项 (Global Options):
- -f, --file <filename>: 指定一个或多个 Compose 配置文件 (默认为- docker-compose.yml)。
- -p, --project-name <name>: 指定项目名称 (默认为当前目录名)。
- --profile <profile_name>: 激活指定配置文件的服务。
启动服务
- 启动服务
# 启动服务
docker-compose up## -d 守护进程
docker-compose up -d
- 启动服务
# 启动服务
docker-compose start
停止服务
- 停止服务
# 停止服务
docker-compose down
- 停止服务
# 停止已运行的服务
docker-compose stop
重启服务
- 重启服务
# 重启服务
docker-compose restart
查看运行容器列表
- 列出所有运行容器
# 列出所有运行容器
docker-compose ps## -a 包括停止的容器
docker-compose ps
查看服务日志
- 查看服务日志
# 查看服务日志
docker-compose logs <服务名>
构建镜像
- 构建
# 构建或者重新构建服务
docker-compose build
docker-compose rm删除
# 删除已停止的服务容器
docker compose rm
| 参数 | 解释 | 
|---|---|
| -f, --force | 不要求确认删除 | 
| -s, --stop | 如果需要,请在删除之前停止容器 | 
| -v, --volumes | 删除附加到容器的所有匿名卷 | 
