Docker 的帮助启动类命令主要涉及 Docker 服务的启动、停止、重启、查看状态以及设置开机自启动等操作。
systemctl start docker
systemctl
命令来启动服务。systemctl stop docker
systemctl
命令来管理服务的停止。systemctl restart docker
systemctl status docker
systemctl enable docker
docker info
docker --help
docker 具体命令 --help
--help
选项来查看其详细的帮助文档。这包括命令的语法、选项、示例等,对于深入了解和使用 Docker 命令非常有帮助。综上所述,Docker 的帮助启动类命令主要涉及服务的启动、停止、重启、查看状态以及设置开机自启动等操作,同时提供了查看 Docker 系统概要信息和帮助文档的命令。这些命令是 Docker 用户日常管理和维护 Docker 服务的基本工具。
Docker 的常用镜像命令涵盖了镜像的搜索、拉取(下载)、查看、删除、导出、导入等多个方面。
在Docker中,docker images
命令用于列出本地所有的镜像。这个命令是Docker用户日常操作中最常用的命令之一,它可以帮助用户快速查看和管理本地的镜像资源。
docker images [OPTIONS] [REPOSITORY[:TAG]]
-a
或 --all
:列出本地所有的镜像(包括中间映像层,默认情况下,会过滤掉中间映像层)。--digests
:显示镜像的摘要信息。-f
或 --filter
:显示满足条件的镜像。--format
:指定返回值的模板文件,用于自定义输出的格式。--no-trunc
:显示完整的镜像信息,避免截断。-q
或 --quiet
:只显示镜像的ID。latest
,代表最新版本。对于使用v2或更高版本格式的镜像,还会有一个DIGEST
列,以sha256:
开头,这是镜像的摘要信息。摘要信息是一个内容可寻址标识符,只要生成镜像的输入保持不变,摘要值就是可预测的。
假设执行docker images
命令,输出可能如下(示例内容,实际输出会根据本地镜像情况有所不同):
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 1d622ef86b13 2 weeks ago 64.2MB
nginx latest f09fe80ddb0f 3 weeks ago 133MB
hello-world latest fce289e99eb9 4 months ago 1.84kB
这个列表显示了本地存储的三个镜像:ubuntu
、nginx
和hello-world
,包括它们的标签、镜像ID、创建时间和大小。
docker rmi
命令,并指定镜像的ID或名称及标签。综上所述,docker images
命令是Docker中用于列出本地镜像的基本且重要的命令,通过它用户可以方便地查看和管理本地镜像资源。
docker search [OPTIONS] TERM
docker search nginx
,将搜索所有与nginx相关的镜像。docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull nginx:latest
,将下载最新版本的nginx镜像。docker images [OPTIONS] [REPOSITORY[:TAG]]
docker images
,列出所有本地镜像。docker rmi [OPTIONS] IMAGE [IMAGE...]
docker rmi nginx:latest
,将删除最新版本的nginx镜像。docker save [OPTIONS] IMAGE [IMAGE...] > FILE.tar
docker save -o nginx.tar nginx:latest
,将最新版本的nginx镜像保存为nginx.tar文件。docker load [OPTIONS] < FILE.tar
或 docker load [OPTIONS] --input FILE.tar
docker load -i nginx.tar
或 docker load < nginx.tar
,将从nginx.tar文件中加载镜像。docker inspect [OPTIONS] NAME|ID [NAME|ID...]
,用于获取镜像的详细信息,如创建时间、大小、配置等。docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
,用于给镜像添加新的标签,便于管理和引用。以上命令是Docker镜像管理的常用命令,通过它们可以方便地进行镜像的搜索、下载、查看、删除、导出和导入等操作。
Docker虚悬镜像(dangling image)是指在Docker环境中存在的一种特殊镜像,它们已经被创建,但当前没有被任何容器所引用,同时也没有被赋予明确的仓库名和标签。这种镜像通常是在构建或删除镜像的过程中,由于某些原因(如构建取消、构建失败或删除操作未完全清理)而产生的。
<none>
的仓库名和<none>
的标签。要查看Docker中的虚悬镜像,可以使用以下命令:
docker images -f "dangling=true"
或者,你也可以使用-a
或--all
参数来查看所有镜像(包括虚悬镜像),但这样可能会列出更多的信息,需要手动筛选:
docker images -a
在输出中,你可以找到仓库名和标签都是<none>
的镜像,它们就是虚悬镜像。
清理虚悬镜像以释放磁盘空间是一个好习惯。你可以使用以下命令来删除所有虚悬镜像:
docker image prune
执行该命令后,Docker会列出所有将被删除的虚悬镜像,并询问你是否确认删除。如果你确认要删除,输入y
并按回车键即可。
另外,如果你知道某个特定虚悬镜像的ID,也可以直接使用docker rmi
命令来删除它,但需要注意的是,这样做需要小心谨慎,以免误删其他重要镜像。
Docker虚悬镜像是Docker环境中一种特殊的镜像状态,它们没有被任何容器所引用且没有明确的仓库名和标签。定期清理虚悬镜像是一种良好的Docker环境维护习惯,可以帮助释放磁盘空间并减少环境复杂性。通过docker images -f "dangling=true"
命令可以查看虚悬镜像,而docker image prune
命令则用于删除所有虚悬镜像。
Docker 的常用容器命令涵盖了容器的创建、启动、停止、删除、查看、日志管理等多个方面。以下是一些常用的 Docker 容器命令及其说明:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
--name="容器名"
:指定容器名,不指定就随机-d
:后台运行容器,并返回容器ID。-i
:以交互模式运行容器,通常与 -t
同时使用。-t
:为容器重新分配一个伪输入终端,通常与 -i
同时使用。-P
:随机端口映射,将容器内部使用的网络端口映射到主机上。-p
:指定端口映射,格式为 ip:hostPort:containerPort
或 hostPort:containerPort
。-v
:挂载宿主机的目录到容器的指定目录。docker run -it --name="" IMAGE bash
:启动交互式容器docker run -d --name="" IMAGE bash
:启动守护式容器exit
: run 进去容器, exit 退出,容器停止docker ps
:列出当前正在运行的容器。-a
或 --all
:列出所有容器(包括未运行的)。-l
或 --latest
:仅显示最新创建的容器(包括未运行的,如果指定了 -a)。-n <num>
:显示最新创建的 个容器。-q
或 --quiet
:仅显示容器 ID。--size
:显示容器的大小。--filter
:根据提供的条件过滤输出。docker stop 容器ID或容器名
docker kill 容器ID或容器名
docker start 容器ID或容器名
docker restart 容器ID或容器名
docker rm 容器ID或容器名
docker rm -f 容器ID或容器名
docker rm -f $(docker ps -aq)
docker ps -a -q | xargs docker rm
docker exec -it 容器ID或容器名 /bin/bash
(或 /bin/sh
,取决于容器内的shell)docker attach 容器ID或容器名
docker attach
退出容器时(如使用 exit
命令),容器也会停止。因此,更推荐使用 docker exec
。docker exec
与 docker attach
的区别Docker Exec
与 Docker Attach
是Docker 管理容器时常用的两个命令,它们在功能和用法上存在显著差异。以下是这两个命令的主要区别:
-i
(或--interactive
)选项可以保持标准输入打开,允许用户与命令交互;-t
(或--tty
)选项可以分配一个伪终端。exit
命令来退出容器内的shell,但这不会影响容器的运行状态。exit
命令,则可能会退出容器的主进程,导致容器停止运行(这取决于容器的启动命令和配置)。综上所述,Docker Exec和Docker Attach在功能和用法上存在明显的差异,用户应根据具体的需求和场景来选择合适的命令。
docker logs 容器ID或容器名
docker logs -f 容器ID或容器名
Docker容器导出主要使用docker export
命令,该命令将容器的文件系统内容导出为一个tar归档文件。但请注意,导出的内容不包括容器的配置、端口映射、网络设置等元数据信息。
导出步骤:
停止容器(如果容器正在运行):
docker stop <container_name_or_id>
这一步是可选的,但建议在进行导出前停止容器,以确保导出的是一致性的文件系统状态。
使用docker export
命令导出容器:
docker export <container_name_or_id> > <output_tar_file.tar>
或者,你也可以通过管道直接输出到文件:
docker export <container_name_or_id> | gzip > <output_tar_file.tar.gz>
这样可以压缩导出的文件,便于传输和存储。
Docker容器导入主要使用docker import
命令,但需要注意的是,docker import
实际上是将导出的tar文件作为新的镜像的根文件系统来创建一个新的镜像,而不是直接恢复为一个容器。因此,导入后你需要基于这个新镜像来启动一个新的容器。
导入步骤:
使用docker import
命令导入tar文件:
docker import <input_tar_file.tar> <repository:tag>
例如:
docker import mycontainer.tar myrepo/myimage:latest
这将创建一个新的镜像myrepo/myimage:latest
,其根文件系统来自mycontainer.tar
文件。
基于新镜像启动容器:
docker run -d --name <new_container_name> <repository:tag>
例如:
docker run -d --name my_new_container myrepo/myimage:latest
docker save
和docker load
命令来保存和加载镜像,或者使用Docker Compose来管理多容器应用。docker import
命令中被视为新的镜像的根文件系统,因此你可以为导入的镜像指定新的仓库名、标签等信息。综上所述,Docker的容器导入导出功能主要用于迁移容器内部的数据状态,而不是整个容器及其配置。在实际应用中,应根据具体需求选择合适的方法。
docker rename 旧容器名 新容器名
docker inspect 容器ID或容器名
docker cp 宿主机路径 容器ID或容器名:容器内路径
docker cp 容器ID或容器名:容器内路径 宿主机路径
docker top 容器ID或容器名
这些命令是 Docker 容器管理的基础,通过它们可以方便地对容器进行创建、管理、维护和调试。