docker compose使用

一、安装docker  compose

docker compose分为两种方式安装,插件反正和标准安装:参见官网:https://docs.docker.com/compose/install/linux/

插件方式安装

sudo apt-get update
sudo apt-get install docker-compose-plugin

确认安装的版本号:

docker compose version

卸载

sudo apt-get remove docker-compose-plugin

标准方式安装

curl -SL https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

创建软连接:

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

确认安装的版本号:

docker-compose version

卸载

rm $DOCKER_CONFIG/cli-plugins/docker-compose

使用

注意插件方式安装和 标准方式安装命令上有区别

# 插件方式
docker compose
# 命令方式安装
docker-compose

二、编写docker compose 文件

 创建一个compose.yaml 文件

# docker compose中定了了两个服务
services:
  web:
    # 使用当前目录下的Dockerfile文件构建镜像
    build: .
    # 端口映射主机8000:容器5000
    ports:
      - "8000:5000"
  # 目录挂载,当当前目录挂载到容器的/code目录,使得构建的容器可以访问主机当前目录的内容 volumes: - .:/code environment: FLASK_DEBUG: "true" # 定义了redis服务,其中没有特别指定hostname的话,服务名就是主机名 redis: # 本地没有镜像,则从远程拉取 image: "redis:alpine" ports: - "6379:6379"

 运行docker compose.yaml 中定义的服务,如果没有镜像的话会先生成镜像在启动容器

docker compose up

三、docker compose 常用命令

 常用

# 启动所有服务
docker compose up

# 在后台启动所有服务
docker compose up -d

# 在后台所有启动服务,指定编排文件
docker compose -f compose.yml up -d
# 重启服务
docker compose restart
# 查看项目中所有服务的信息
docker compose ps
# 查看容器的日志
docker compose logs
# 在项目的某个容器中执行命令
docker compose exec service_name command

 restart

docker compose restart # 重启工程中所有服务的容器
docker compose restart nginx # 重启工程中指定服务的容器

start

docker compose start # 启动工程中所有服务的容器
docker compose start nginx # 启动工程中指定服务的容器

stop

docker compose stop # 停止工程中所有服务的容器
docker compose stop nginx # 停止工程中指定服务的容器

build

# 构建服务的镜像
docker compose build
# 如果服务镜像不存在,则构建镜像并启动服务。
docker compose up –build
 # 重构服务。
docker compose up --force-recreate 

ps,log

# 查看项目中所有服务的信息。
docker compose ps
# 查看容器的日志。
docker compose logs
# 在服务镜像的容器中执行命令。
docker compose exec service_name command

down

#  删除服务容器(容器)
docker-compose down 

logs

# docker compose logs 查看服务容器的输出日志。
# 默认情况下,docker compose将对不同的服务输出使用不同的颜色来区分。
# 可以通过--no-color来关闭颜色。
# 输出日志,不同的服务输出使用不同的颜色来区分
docker compose logs
# 跟踪日志输出
docker compose logs -f
# 关闭颜色
docker compose logs --no-color
 
# 查看日志
docker compose logs web  # 参考 1.9 docker-compose.yml 文件内容

run

docker compose run 在指定服务容器上执行一个命令。
docker compose run nginx echo "helloworld" # 在工程中指定服务的容器上执行 echo "helloworld"

exec

docker compose exec进入服务容器。
docker compose exec nginx bash # 进入工程中指定服务的容器
docker compose exec --index=1 nginx bash # 当一个服务拥有多个容器时,可通过 --index 参数进入到该服务下的任何容器

pause,unpause

docker compose pause # 暂停工程中所有服务的容器
docker compose pause nginx # 暂停工程中指定服务的容器
 
docker compose unpause # 恢复工程中所有服务的容器
docker compose unpause nginx # 恢复工程中指定服务的容器

rm 删除容器

docker compose rm -f jobmanager
docker compose rm -f taskmanager

 

posted @ 2024-02-25 13:04  远洪  阅读(166)  评论(0编辑  收藏  举报