深入了解 Docker 容器操作命令:掌握容器化管理的关键

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
日志服务 SLS,月写入数据量 50GB 1个月
简介: Docker 已经成为现代应用程序开发和部署的行业标准。它借助容器化技术,提供了一种轻量、可移植和可扩展的方式来构建、发布和运行应用程序。然而,最近我在工作中发现,一些家人们对 Docker 容器的操作命令还不太熟悉。因此,本文旨在深入介绍 Docker 容器操作的各个方面,包括对每个命令及其参数的详细解释。希望通过这篇文章,我们可以一起探讨和学习,进一步提高对 Docker 的理解和应用能力。

Docker 已经成为现代应用程序开发和部署的行业标准。它借助容器化技术,提供了一种轻量、可移植和可扩展的方式来构建、发布和运行应用程序。然而,最近我在工作中发现,一些家人们对 Docker 容器的操作命令还不太熟悉。因此,本文旨在深入介绍 Docker 容器操作的各个方面,包括对每个命令及其参数的详细解释。希望通过这篇文章,我们可以一起探讨和学习,进一步提高对 Docker 的理解和应用能力。

docker-container.jpg

创建容器

创建容器有两种方式docker rundocker creat

  1. docker run

docker run 命令首先会在 Docker 主机上查找指定的容器镜像。如果镜像不存在,Docker 将从 Docker Hub 或其他镜像仓库下载它。一旦找到或下载了镜像,Docker 将根据该镜像创建一个新的容器实例。一旦容器创建完成,docker run 命令将会启动容器。

docker run 命令的基本语法如下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • OPTIONS:可选参数,用于配置容器的各种属性。
  • IMAGE:必需参数,指定要运行的容器镜像。
  • COMMAND:可选参数,覆盖容器中定义的默认命令。
  • ARG...:可选参数,传递给容器中的命令的参数。

下面是一些常见的 docker run 参数和选项:

  • -i 或 --interactive:以交互模式运行容器,允许用户输入。
  • -t 或 --tty:分配伪终端 (pseudo-TTY),通常与 -i 一起使用以支持交互性。
  • -d 或 --detach:以后台模式运行容器,不占用当前终端。
  • --name:为容器指定一个名称。
  • --rm:容器停止后自动删除容器。
  • -e 或 --env:设置环境变量。
  • -p 或 --publish:将容器端口映射到主机端口。
  • -v 或 --volume:挂载主机文件或目录到容器中。
  • --network:指定容器连接的网络。
  • --link:连接到另一个容器。
  • --entrypoint:覆盖容器中定义的默认入口点。
  • --restart: Docker 容器的重启策略的选项。

例如,要以交互式终端模式运行一个名为 xj_pandora 的容器,使用xj/pandora:1. 镜像,可以运行以下命令:

docker run -itd -p 8899:8899  --name xj_pandora -e PUID=0 -e PGID=0 -e PANDORA_SERVER=0.0.0.0:8899 -e PANDORA_CLOUD=cloud -e TZ=Asia/Shanghai  --restart=always  xj/pandora:1.0
  1. docker creat
    docker create 命令不是一个常用的命令,而且它通常与其他命令一起使用。docker create 的主要作用是创建一个新的容器,但并不启动该容器。它返回容器的唯一标识符(容器ID),然后你可以使用其他命令来进一步配置和启动这个容器。

以下是 docker create 命令的基本语法和选项:

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
  • OPTIONS:可选参数,用于配置容器的各种属性。
  • IMAGE:必需参数,指定要使用的容器镜像。
  • COMMAND:可选参数,覆盖容器中定义的默认命令。
  • ARG...:可选参数,传递给容器中的命令的参数。

它的参数和选项和docker run 大同小异

启动、停止和删除容器

  • 启动容器

已创建的容器可以使用 docker start 命令启动:

docker start container_name/container_id

docker restart 命令重启容器

docker restart container_name/container_id
  • 停止容器

停止容器使用 docker stop 命令::

docker stop container_name/container_id
  • 删除容器

使用 docker rm 命令可以删除一个或多个停止的容器:

docker rm container_name/container_id

查看容器

要查看当前运行的容器,可以使用 docker ps 命令:

 docker ps

如果要查看所有容器,包括已停止的容器,可以使用 docker ps -a 命令:

 docker ps -a

_20230925230526.jpg

进入容器

基本语法:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • OPTIONS:可选参数,用于配置执行命令的方式。
  • CONTAINER:必需参数,指定要执行命令的容器名称或容器ID。
  • COMMAND:要在容器内执行的命令。
  • ARG...:命令的参数,可以包含多个。

以下是一些常见的 docker exec 参数和选项:

  • -i 或 --interactive:以交互模式运行命令,通常与 -t 一起使用以支持交互性。
  • -t 或 --tty:分配伪终端 (pseudo-TTY),通常与 -i 一起使用。
  • --user:指定执行命令的用户或用户ID。
  • --env:设置环境变量。
  • --workdir:指定执行命令的工作目录。
  • --privileged:以特权模式执行命令,具有更高的权限。

要进入运行中的容器并执行命令,可以使用 docker exec 命令。例如,要进入一个名为 xj_pandora 的容器并启动 Bash 终端:

 docker exec -it cdf3be3e078a  /bin/bash

_20230925231329.jpg

拷贝文件

使用 docker cp 命令可以将文件复制到容器内部或从容器内部复制文件到主机。

复制容器中的文件到宿主机:

docker cp cdf3be3e078a:/opt/app/requirements.txt  .

_20230925231904.jpg

复制宿主机中的文件到容器:

docker cp ./test.txt  cdf3be3e078a:/opt/app/

_20230925232122.jpg

导出和导入容器

你可以使用 docker export 命令将容器导出为一个文件,然后使用 docker import 命令将文件导入为一个新的镜像。这对于分享容器快照或迁移容器非常有用。

docker export -o xj_container.tar xj_container_name
docker import xj_container.tar xj_new_image

查看容器日志

docker logs 命令用于查看 Docker 容器的日志输出。它允许你查看容器内运行的应用程序的标准输出(stdout)和标准错误输出(stderr)。以下是 docker logs 命令的基本语法和详细解释:

docker logs [OPTIONS] CONTAINER
  • OPTIONS:可选参数,用于配置日志输出的方式。
  • CONTAINER:必需参数,指定要查看日志的容器名称或容器ID。

以下是一些常见的 docker logs 参数和选项:

  • -f 或 --follow:实时跟踪容器日志的输出,类似于 tail -f 命令。
  • --since:仅显示在指定的时间之后生成的日志。
  • --until:仅显示在指定的时间之前生成的日志。
  • --timestamps:显示日志条目的时间戳。
  • --tail:仅显示最后几行日志,默认为所有日志。
  • --details:显示更多的详细日志信息,如容器的标准错误输出。

例如实时输出容器pandora-pandora-1 的日志:

docker logs -f pandora-pandora-1

_20230925232855.jpg

总结

Docker 容器操作命令是容器化应用程序开发和管理的关键工具。通过深入了解这些命令的语法和用途,你可以更好地管理和监控容器,确保你的应用程序能够顺利运行。无论是创建容器、查看日志、监控资源使用还是进入容器内部,这些命令都为容器化管理提供了强大的支持。希望本文对你在 Docker 容器操作方面提供了有用的信息和指导。

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
1月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
160 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
2月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
201 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
2月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
148 24
|
2月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
202 6
|
2月前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
300 78
|
3月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
2471 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
4月前
|
存储 监控 安全
|
4月前
|
存储 关系型数据库 MySQL
|
6天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
127 15
|
1月前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
202 11