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
博客里大都是转载的内容,其目的主要用户知识的组织和管理。