Docker Compose常用命令

常用命令

1.1 restart, start, stop-- 启动和停止服务

命令必须在 docker-compose.yml文件所在的目录下执行。

# 前台启动, 启动项目中的所有服务。
$. docker-compose up# 后台启动, 启动所有服务并在后台运行。 
$. docker-compose up -d# 停止所有服务。
$. docker-compose stop restart
docker-compose restart重启服务容器。
docker-compose restart # 重启工程中所有服务的容器
docker-compose restart nginx # 重启工程中指定服务的容器start
docker-compose start启动服务容器。
docker-compose start # 启动工程中所有服务的容器
docker-compose start nginx # 启动工程中指定服务的容器stop
docker-compose stop停止服务容器。
docker-compose stop # 停止工程中所有服务的容器
docker-compose stop nginx # 停止工程中指定服务的容器

1.2 build -- 构建和重构服务

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

1.3 ps, logs -- 查看服务信息

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

1.4 down -- 删除所有容器

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

1.5 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 文件内容

1.6 run命令 -- 在指定容器上执行命令

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

1.7 exec命令 -- 进入指定容器

exec
docker-compose exec进入服务容器。
docker-compose exec nginx bash # 进入工程中指定服务的容器
docker-compose exec --index=1 nginx bash # 当一个服务拥有多个容器时,可通过 --index 参数进入到该服务下的任何容器sudo docker-compose exec jobmanager ./bin/sql-client.sh -f sql/flink_kafka1.sql
sudo docker-compose exec jobmanager ./bin/flink list
sudo docker logs -f -t --since="2023-05-08" --tail=200 flink_taskmanager_1
sudo docker-compose logs -f taskmanagersudo docker-compose exec jobmanager bash
sudo docker-compose exec jobmanager ./bin/flink cancel 8d8cc94d73f7bd0c4cdc557264553a04

1.8 pause, unpause命令 -- 暂停, 恢复服务容器

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

1.9 scale 命令 -- 扩容缩容

docker-compose scale taskmanager=5
docker-compose up --scale web=5 -d# -------------------------------------------- # 
# docker-compose.yml内容:
version: '3'
services:web:build: .networks:- app-netredis:image: "redis:alpine"networks:- app-netnetworks:app-net:driver: bridge

1.20 ps命令 -- 查看容器列表

docker-compose ps

1.21 stop 指定容器

docker-compose stop jobmanager
docker-compose stop taskmanager

1.22 删除容器

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

2. 示例说明

2.1 示例一

假设有一个项目,包含了一个nginx服务和一个web服务,运行在不同的容器内。nginx作为反向代理服务器将流量转发到web服务器上。
在项目根目录下,创建一个 docker-compose.yml文件,并填写如下内容:
version: '3'
services:nginx:image: nginxports:- 80:80web:build: ./webports:- 5000:5000
其中,nginx服务直接使用官方的nginx镜像,将其映射到宿主机的80端口,web服务则是使用当前目录下的web子目录中的Dockerfile构建出镜像,将其映射到宿主机的5000端口上。
通过执行docker-compose up命令来启动服务:
$. docker-compose up -d
Creating network "web_default" with the default driver
Creating web_1 ...
Creating nginx_1 ...

此时,nginx服务和web服务已经在后台运行了。

如果需要停止服务,可以执行docker-compose stop命令:

$. docker-compose stop
Stopping nginx_1 ... done
Stopping web_1   ... done

如果需要重构服务,需要在docker-compose.yml文件所在的目录下执行docker-compose up –force-recreate命令:

$ docker-compose up --force-recreate
Recreating web_1 ...
Recreating nginx_1 ...

2.2 示例二

假设需要在一台服务器上运行两份相同的应用,但它们需要监听不同的端口,并需要以不同的环境变量进行配置。可以通过 Docker Compose来实现。
首先,创建一个项目目录,在该目录下创建 docker-compose.yml文件,并填写如下内容:
version: '3'
services:app1:image: myappenvironment:PORT: 3000MESSAGE: "Hello from app1"ports:- 8001:3000app2:image: myappenvironment:PORT: 4000MESSAGE: "Hello from app2"ports:- 8002:4000

其中,定义了两个服务app1和app2,它们都是使用myapp镜像构建,

  • app1服务监听3000端口,在宿主机上映射到8001端口,配置了环境变量PORT和MESSAGE;
  • app2服务监听4000端口,在宿主机上映射到8002端口,配置了不同的PORT和MESSAGE。

在项目所在目录下执行docker-compose up -d命令来启动服务,然后使用浏览器访问localhost:8001和localhost:8002来访问不同的应用。

如果需要重构服务,需要在docker-compose.yml文件所在的目录下执行docker-compose up –force-recreate命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/71893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据课程K18——Spark的ALS算法与显式矩阵分解

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握Spark的ALS算法与显式矩阵分解; ⚪ 掌握Spark的ALS算法原理; 一、ALS算法与显式矩阵分解 1. 概述 我们在实现推荐系统时,当要处理的那些数据是由用户所提供的自身的偏好数据,这些…

什么是机器学习中的监督学习和无监督学习,举例说明

1、什么是机器学习中的监督学习和无监督学习,举例说明。 监督学习: 监督学习是一种机器学习的方法,它通过已知的数据(即训练数据)来预测未知的数据(即测试数据)。例如,一个监督学习…

k8s node环境部署(三)

1、添加node1、node2环境 前面配置master环境的截图最后一段 复制下来 分别在node主机执行 kubeadm join 192.168.37.132:6443 --token p5omh3.cqjqt8ymrwkdn2fc \ --discovery-token-ca-cert-hash sha256:608a1cbadd060cfdeac2fae84c19609061b750ab51bf9a19887ff7ea…

Ubuntu之apt-get系列--安装JDK8--方法/教程

原文网址:Ubuntu之apt-get系列--安装JDK8--方法/教程_IT利刃出鞘的博客 简介 本文介绍如何在Ubuntu下安装JDK8。 验证是否安装 可以通过如下命令判断系统是否有安装ssh服务: 命令 java -version 结果 如上所示,表示还没有安装。 查看…

实训三:多表查询 - 大学数据库创建与查询实战

大学数据库创建与查询实战 第1关:数据库表设计任务描述相关知识大学数据库的整体设计教师信息表(instructor)开课信息表(section) 编程要求测试说明参考代码 第2关:查询(一)任务描述…

从零开始学习软件测试-第38天笔记

接口测试 什么是接口 接口是两个独立部件共享信息的边界,测试中常说的接口大部分是web接口。web接口是遵循了http或者https协议的URL。 数据的流转过程 由客户端通过接口将数据发送给服务器。服务器收到数据之后,取出想要的数据,拼装成一…

[虚幻引擎插件介绍] DTGlobalEvent 蓝图全局事件, Actor, UMG 相互回调,自由回调通知事件函数,支持自定义参数。

本插件可以在虚幻的蓝图 Actor, Obiect,UMG 里面指定绑定和执行消息,可带自定义参数。 参数支持 Bool,Byte,Int,Int64,Float,Name,String,Text,Ve…

Ubuntu 20.04 LTS 安装Kubernetes 1.26

1、环境配置 (1)添加主机名称解析记录 cat > /etc/hosts << EOF 192.168.44.200 master01 master01.bypass.cn 192.168.44.201 node01 node01.bypass.cn 192.168.44.202 node02 node02.bypass.cn EOF(2)禁止K8s使用虚拟内存 swapoff -a sed -ri s(.*swap.*)#\1…

常见关系型数据库SQL增删改查语句

常见关系型数据库SQL增删改查语句&#xff1a; 创建表&#xff08;Create Table&#xff09;&#xff1a; CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),age INT,department VARCHAR(50) ); 插入数据&#xff08;Insert Into&#xff09;&#xff1a; INSERT …

sqlite3 是一个命令行工具,用于与 SQLite 数据库进行交互和管理

通过在终端或命令提示符中键入 sqlite3 命令&#xff0c;可以启动 sqlite3 工具并连接到指定的 SQLite 数据库文件。 连接成功后&#xff0c;你将获得一个交互式的命令行界面&#xff0c;可以在其中执行各种数据库操作。使用 sqlite3 命令时&#xff0c;可以提供以下参数&#…

自然语言处理:提取长文本进行文本主要内容(文本意思)概括 (两种方法,但效果都一般)

本文主要针对长文本进行文本提取和中心思想概括&#xff0c;原文档放在了附件里面&#xff1a;<科大讯飞公告> -----------------------------------方法一&#xff1a;jieba分词提取文本&#xff08;句子赋分法&#xff09;------------------------- 1、首先导入相关…

【车载开发系列】诊断故障码中的扩展数据

【车载开发系列】诊断故障码中的扩展数据 诊断故障码中的扩展数据 【车载开发系列】诊断故障码中的扩展数据一. 扩展数据概念二. DemDataElementClass对象三. DemInternalDataElement对象四. DemExtendedDataClass五. DemExtendedDataRecordClass1)DemExtendedDataRecordNumbe…

【Cicadaplayer】avpkt 队列(mPacketQueue)的条件等待(wait)

此时,网络包读取,网络包可能有音频、视频、字幕等等。MAX_QUEUE_SIZE 是总共的包数目的上限,保证mPacketQueue 不能太大也不能太小。小于此值,读取线程会等待。std::condition_variable.wait()的用法和设计缺陷带来的坑 大神对条件变量做了深入分析。int avFormatDemuxer::…

go基础09-Go语言的字符串类型

字符串类型是现代编程语言中最常使用的数据类型之一。在Go语言的先祖之一C语言当中&#xff0c;字符串类型并没有被显式定义&#xff0c;而是以字符串字面值常量或以’\0’结尾的字符类型&#xff08;char&#xff09;数组来呈现的&#xff1a; #define GOAUTHERS "Rober…

vue3 defineProps 函数

在 vue2 中我们使用选项中的 props 来接受父组件传递过来的数据&#xff1b;那在 vue3 的 setup 中&#xff0c;我们使用 defineProps 来定义父组件传递过来的数据 1、defineProps 支持的类型有&#xff1a;String、Number、Boolean、Object、Array、Function&#xff0c;除此之…

2023-09-07 C++命名空间的一些陷阱

老林的C语言新课, 想快速入门点此 <C 语言编程核心突破> C命名空间的一些陷阱 前言一、命名空间是什么&#xff1f;(InsCode AI 创作助手)二、命名空间全局污染总结 前言 最近看到个问题, 就是在命名空间中声明一个变量 ( int rand 0 ), 用using namespace将这个命名空…

方向介绍:基于深度学习的轨迹预测

方向介绍&#xff1a;基于深度学习的轨迹预测 文章目录 方向介绍&#xff1a;基于深度学习的轨迹预测问题定义典型方法挑战未来展望参考 基于深度学习的轨迹预测是一种利用神经网络模型来预测移动物体的未来位置和运动状态的技术。这种技术在许多领域都有重要的应用&#xff0c…

常见数据库介绍对比之SQL关系型数据库

1.关系型数据库介绍 关系型数据库是一种基于关系模型的数据库&#xff0c;它使用表格来组织和存储数据。下面是一些常见的关系型数据库&#xff1a; 1.1. MySQL MySQL是一种开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛用于Web应用程序和企业级…

Nosql数据库服务之redis

Nosql数据库服务之redis 一图详解DB的分支产品 Nosql数据库介绍 是一种非关系型数据库服务&#xff0c;它能解决常规数据库的并发能力&#xff0c;比如传统的数据库的IO与性能的瓶颈&#xff0c;同样它是关系型数据库的一个补充&#xff0c;有着比较好的高效率与高性能。 专…

AlexNet 06

一、发展 1989年&#xff0c;Yann LeCun提出了一种用反向传导进行更新的卷积神经网络&#xff0c;称为LeNet。 1998年&#xff0c;Yann LeCun提出了一种用反向传导进行更新的卷积神经网络&#xff0c;称为LeNet-5 AlexNet&#xff0c;VGG&#xff0c;GoogleNet&#xff0c;R…