docker-2命令

Docker命令分类
docker --help可以查看docker命令介绍

docker的命令可以分为6类

子命令分类子命令
Docker环境信息info,version
Container生命周期管理create,exec,kill,pause,restart,rm run,start,stop,unpause
Docker registry命令login,logout,pull,push,search
Docker images管理build,image,import,load,rmi,save,tag,commit
Container运维操作attach,export,inspect,port,ps,rename,stats,top,wait,cp,diff
System日志信息event,history,logs

所有的命令执行前都需要加上docker

Docker环境信息

docker info和docker version都可以用于检查Docker是否正确安装,正确安装会输出Docker的配置信息
在这里插入图片描述
在这里插入图片描述

container生命周期管理

新建并启动容器

run
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

docker run命令会寻找本地镜像,以此为模板新建一个容器。如果本地没有,会去远程仓库拉取。
可以使用docker run --help来挑选可以选用的选项

[OPTIONS]常见的选项有:

OPTIONS
–name后跟随着为容器指定的名称
-d后台运行容器,并返回容器ID,即启动守护式容器
-i使用交互模式运行容器,始终保持输入流开放
-t为容器分配一个伪终端,与i同时使用。即:在容器中利用打开的weight终端与容器进行交互
-v挂载volumn
-P随机端口映射
-p指定端口,可以有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
docker run -it --name mytest centos:latest /bin/bash

该语句将使用centos的最新版本tag镜像启动一个容器,将其命名为mytest,并且启动伪终端,然后执行容器内的/bin/bash命令。执行完语句后,系统将进入容器的伪终端。

docker run centos ls -l

该命令将会使用centos最新版本镜像启动容器,运行ls -l命令后容器将会停止运行并退出


启动容器

start
docker start 容器ID或者容器名

该命令将会启动已经存在但退出运行的一个容器

docker start f0baacb5152d

f0baacb5152d是容器ID

docker start mytest

mytest是容器名字

restart
docker restart 容器ID或者容器名

该命令将会重新启动已经存在的正在运行容器


停止容器

stop
docker stop 容器ID或者容器名

该命令将会让正在运行的容器停止运行

kill
docker kill 容器ID或者容器名

该命令将让正在运行的容器强行停止运行

stop和kill的区别

docker stop:支持“优雅退出”。先发送SIGTERM信号,在一段时间之后(10s)再发送SIGKILL信号。Docker内部的应用程序可以接收SIGTERM信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。

docker kill:发送SIGKILL信号,应用程序直接退
出。


删除容器

rm
docker rm 容器ID

删除正在运行的容器


可以采用嵌入多条命令的形式删除多个容器

docker rm -f ${docker ps -a -q}

-f将会强行删除
docker ps -a -q命令将会显示当前正在运行+历史上运行过的容器的容器ID。
所以上面命令将会强制删除docker上所有的容器,包括运行不运行



退出容器

是指目前已经在容器内部的伪终端中,如何退出伪终端,回到系统原来的终端。

输入exit命令

容器会停止退出

按住crtl+P+Q键

容器将会处于运行状态下,不停止退出



Docker registry

pull

    docker pull [OPTIONS] NAME{:TAG}

将会从docker registry中拉取image或者repository(镜像库,包括各个版本标签的镜像)。

push

    docker push NAME{:TAG}

将本地的image或者repository推送到docker 镜像库中

search

    docker search [OPTIONS] NAME

寻找远程仓库下对应名字的镜像

[OPTIONS]举例

–no-trunc:显示完整的镜像描述
-s:列出收藏数不少于指定值的镜像
–automated:列出automated build类型的镜像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



images管理

列出镜像

images
docker images [OPTIONS] [NAME]

列出主机上所有的镜像

[OPTIONS]说明
-a:列出本地所有镜像,包括中间映像层
-q:只显示镜像ID
–digests:显示镜像的再要信息
–no-trunc显示完整的镜像信息

在这里插入图片描述
在这里插入图片描述
注意到没有,no trunc将完整显示IMAGE ID,我们平时使用的知识IMAGE的部分ID(12位)


删除镜像

rmi
docker rmi [OPTIONS] IMAGE [NAME]

注意:如果rmi删除镜像时,已经有基于该镜像启动的容器存在,不管该容器是否正在运行,都无法直接删除,需要先rm删除容器,或者使用-f强制删除

删除单个:-------docker rmi -f 镜像ID
删除多个:-------docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部:-------docker rmi -f ${docker images -qa}

docker images -qa将会显示所有的镜像的镜像ID
docker ps -qa将会显示所有的容器的容器ID

注意rmi和rm的区别,一个是删除镜像,一个是删除容器

commit

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

能将一个容器固化成一个新的镜像。注意,commit只能提交保存正在运行的容器。(不推荐使用,一般使用build和Dockerfile创建管理镜像)

[OPTIONS]说明
-m:提交的描述信息
-a:作者

build



Container运维操作

进入正在运行的容器并以命令行形式交互

attach

直接进入容器的终端,不会启动新进程

    docker attach [OPTIONS] CONTAINER
exec

进入容器内执行某个命令后退出

   	docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

在这里插入图片描述
exec可以通过添加-it选项,命令改为/bin/bash后进入容器终端
在这里插入图片描述

inspect 可以查看镜像和容器的详细信息。

docker inspect【OPTIONS】CONTAINER|IMAGE [CONTAINER|IMAGE..]

在这里插入图片描述
添加–format参数可以查看某个键的信息
在这里插入图片描述
在这里插入图片描述

ps

docker ps [OPTIONS]

列出容器列表
[OPTIONS]
-a:显示所有容器,包括已经停止的
-n:显示最新指定的条数的容器
-l:只显示最新创建的容器,包括不运行的容器
-q:只显示容器ID

cp

将容器内的文件拷贝到主机上

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|

SRC_PATH:容器内文件路径
DEST_PATH:主机上目的路径

top

docker top CONTAINER

查看容器内运行的进程

rename

    docker rename CONTAINER NEW_NAME

重命名该容器的name



System日志信息

logs

docker logs [OPTIONS] CONTAINER

[OPTIONS]说明
-t,日志中加入时间戳
-f,跟随最新的日志打印
–tail 数字。显示最后指定数字的条数

events

从docker服务获取容器实时时间

history

展示一个镜像形成历史

<think>好的,用户提到在Debian 12上安装了docker-compose-plugin,但找不到docker-compose命令。我需要先理解问题的根源。首先,docker-compose-plugin和传统的docker-compose有什么不同呢? 我记得Docker官方已经将docker-compose作为插件集成到Docker CLI中,而不是单独的二进制文件了。可能用户安装的是新的插件包,所以原来的命令不再可用。用户可能习惯使用docker-compose命令,现在找不到,所以需要指导他们如何正确使用新插件。 接下来,我需要确认Debian 12docker-compose-plugin的具体安装情况。传统的docker-compose是通过Python包安装的,而插件则是通过docker-ce的扩展包提供的。用户可能安装了docker-compose-plugin,但可能没有意识到命令的变化。 需要检查用户是否正确安装了插件。可能用户运行的是sudo apt install docker-compose-plugin,但安装后并没有docker-compose命令,而是需要通过docker compose来调用。这时候用户可能会混淆,因为旧命令是带短横线的,而新命令是空格分隔的。 另外,用户可能没有将当前用户加入docker组,导致权限问题,无法执行docker命令,这也可能导致命令找不到的误解。不过,用户明确说是没有docker-compose命令,所以更可能的是命令名称的变化。 可能的解决方案是:首先确认用户是否安装了正确的插件包,然后指导他们使用docker compose代替docker-compose。同时,如果用户确实需要旧版的docker-compose命令,可以指导他们通过其他方式安装,比如下载二进制文件或者使用pip安装。 还需要提醒用户注意版本兼容性和维护状态,因为Docker官方已经推荐使用插件版本,而旧版可能不再积极维护。此外,用户可能存在的别名或者符号链接的问题,也可以建议他们创建符号链接来模拟旧命令,但需要注意潜在的问题。 总结一下,回答的结构应该是: 1. 解释问题原因:插件与旧命令的区别。 2. 确认安装是否正确。 3. 指导使用新命令docker compose。 4. 提供安装旧版的方法(可选)。 5. 权限检查和用户组配置。 6. 创建符号链接的步骤(可选)。 7. 版本兼容性提醒。 需要确保步骤清晰,用户能够一步步检查和操作,避免技术术语过多,同时保持准确。可能还需要提醒用户注意命令中的空格和短横线的区别,这是常见的错误点。</think>在 Debian 12 中,如果安装了 `docker-compose-plugin` 但无法使用 `docker-compose` 命令,这是由 Docker 官方的新版本策略导致的。以下是逐步分析和解决方法: --- ### **1. 原因解释** - **传统 `docker-compose`**:早期是一个独立的 Python 工具,通过命令 `docker-compose` 调用。 - **新插件模式**:Docker 官方已将 Compose 功能集成到 Docker CLI 作为插件,命令改为 `docker compose`(注意中间是空格,不是短横线)。 --- ### **2. 验证插件是否安装** 执行以下命令检查插件: ```bash dpkg -l | grep docker-compose-plugin ``` 如果输出包含 `docker-compose-plugin`,则表示已安装。 --- ### **3. 使用新命令格式** 新插件通过以下格式调用: ```bash docker compose [子命令] ``` 例如: ```bash docker compose up -d # 启动容器 docker compose down # 停止容器 ``` --- ### **4. 兼容旧命令(可选)** #### 方法 1:创建符号链接 ```bash sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose ``` 验证: ```bash docker-compose --version ``` #### 方法 2:安装旧版 `docker-compose` ```bash # 下载二进制文件(选择对应版本) sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 添加执行权限 sudo chmod +x /usr/local/bin/docker-compose ``` --- ### **5. 检查用户权限** 如果遇到权限问题(如 `Permission denied`),需将用户加入 `docker` 组: ```bash sudo usermod -aG docker $USER newgrp docker # 立即生效或重新登录 ``` --- ### **6. 版本兼容性提醒** - **新插件 `docker compose`**:由 Docker 官方维护,推荐使用。 - **旧版 `docker-compose`**:未来可能不再更新,建议逐步迁移。 --- ### **总结** - ✅ 优先使用新命令 `docker compose` - ⚠️ 如需兼容旧脚本,可通过符号链接或手动安装旧版 - 🔧 确保用户权限正确配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值