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

news2024/10/7 16:19:29

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 容器操作方面提供了有用的信息和指导。

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

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

相关文章

C++之std::function类模板定义函数对象应用总结(二百三十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

PWN基础:从源文件到可执行文件

目录 编译原理 GCC编译过程 Preprocess阶段 File命令 Compile阶段 Assemble阶段 Link阶段 高级语言编写的程序想在操作系统运行,需要被翻译为机器指令,在按照可执行目标文件格式打包并以二进制形式存储在文件中 编译原理 编译器作用:…

php实现分页功能跳转和ajax方式实现

实现效果 准备工作 创建数据表和导入测试数据 CREATE TABLE users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, username varchar(30) DEFAULT NULL COMMENT 账号, email varchar(30) DEFAULT NULL COMMENT 密码, PRIMARY KEY (id) ) ENGINEMyISAM AUTO_INCREM…

Docker 容器编排

是什么 Docker-Compose是 Docker 官方的开源项目,负责实现对Docker容器集群的快速编排。 Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个…

基于微信小程序的医院门诊体检预约管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

Xcode15下载iOS17一直中断解决办法

1、问题描述 目前的 xcode 15 安装时,跟以前有个差别:以往的 xcode 安装时自带了 ide、sdk 等工具包,安装后即可开始开发,而最新的包则被分开成了不同的包,这里以 ios 开发包为例:Xcode_15.xip 和 iOS_17_…

网络编程-UDP协议(发送数据和接收数据)

需要了解TCP协议的,可以看往期文章 https://blog.csdn.net/weixin_43860634/article/details/133274701 TCP/IP参考模型 通过此图,可以了解UDP所在哪一层级中 代码案例 发送数据 package com.hidata.devops.paas.udp;import java.io.IOException; …

图形处理软件Photoshop Elements 2020 mac中文版 ps简化版

Photoshop Elements 2020 mac是一款非常实用的图形处理工具。ps elements 2020 mac中文版可以帮助您自动生成照片和视频作品的功能,采用Adobe Sensei AI技术可进行图像组织、编辑和创建等。Photoshop Elements 2020 for Mac激活版可以帮助您轻松整理照片和视频&…

【springboot3.x 记录】关于Jakarta包无法引入的问题

最近想将一些项目升级到springboot3.x和java17的时候,发现项目依赖中有Jakarta的包,但是代码标红提示没有相关的类,特此记录一下排查问题和最终解决问题的思路方法 一、发现问题 因为之前有创建过 springboot3.x java17 的项目,…

php导出cvs,excel打开数字超过16变科学计数法

今天使用php导出cvs,在excel中打开,某一个字段是数字,长度高于16位结果就显示科学计数法 超过15位的话从第16位开始就用0代替了 查询了半天总算解决了就是在后面加上"\t" $data[$key][1] " ".$value[1]."\t";…

法规标准-UN R48标准解读

UN R48是做什么的? UN R48全名为关于安装照明和灯光标志装置的车辆认证的统一规定,主要描述了对各类灯具的布置要求及性能要求;其中涉及自动驾驶功能的仅有6.25章节【后方碰撞预警信号】,因此本文仅对此章节进行解读 功能要求 …

Mysql编译安装和yum安装

一、msql数据库介绍 1、什么是sql sql代表结构化查询语言,sql是用于访问数据库的标椎化语言 sql包含三个部分 DDL数据定义语言包含定义数据库及其对象的语言,例如表,视图,触发器,存储过程等 DML数据操作语言包含允许数…

windows 修改hosts映射,可以ping通,但是无法通过http url 路径访问,出现 500 Internal Privoxy Error

问题描述 今天在学习nginx时,想在hosts配置一个nginx的域名映射,但是发现访问nginx服务的ip时可以访问通,在dos命令窗口ping配置的域名映射也可以ping通,但是一旦在浏览器通过http请求访问配置的hosts域名映射时却出现 500 Inter…

学习:原码-反码-补码

文章目录 前提知识原码详解反码补码 二进制负数的运算 前提知识 正数不需要进行原码反码补码一说,正数就是正数,我们原码反码补码是为了针对负数 (按道理来说其实根本不存在什么码,只有二进制机器码,不过是为了方便计…

【Java 基础篇】Java 实现模拟斗地主游戏

欢迎阅读本篇博客,在这篇博客中,我们将详细讲解如何使用Java编写一个简单的模拟斗地主游戏。这个项目将帮助您了解Java编程中的一些基本概念,如面向对象编程、集合框架的使用、随机数生成等。 引言 斗地主是一种非常受欢迎的纸牌游戏&#…

单日 5000 亿行 / 900G 数据接入,TDengine 3.0 在中国地震台网中心的大型应用

小T导读:为满足地震预警数据存储、检索和处理的建设与集成需求,以及响应国家国产软件自主可控的号召,中国地震台网中心决定选用国产数据库 TDengine 来存储和处理地震波形数据。本文将针对 TDengine 3.0 在地震领域的应用展开详细讲解。 关于…

计算机竞赛 深度学习交通车辆流量分析 - 目标检测与跟踪 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 DeepSORT车辆跟踪3.1 Deep SORT多目标跟踪算法3.2 算法流程 4 YOLOV5算法4.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 *…

[Linux入门]---进程状态

文章目录 1.进程主要状态进程运行状态进程阻塞状态进程的挂起状态 2.Linux进程状态Linux进程内核源代码①R运行状态②S睡眠状态③D磁盘休眠状态T停止状态④X死亡状态⑤Z僵尸状态⑥孤儿进程 3.总结 1.进程主要状态 进程运行状态 ①内存中有一个运行队列,其中有两个指…

ElementUI实现登录注册啊,axios全局配置,CORS跨域

一,项目搭建 认识ElementUI ElementUI是一个基于Vue.js 2.0的桌面端组件库,它提供了一套丰富的UI组件,包括表格、表单、弹框、按钮、菜单等常用组件,具备易用、美观、高效、灵活等优势,能够极大的提高Web应用的开发效…

今天聊一聊高性能系统架构设计是什么样的

Java全能学习面试指南:https://javaxiaobear.cn 今天聊一聊大家常听到的高性能系统架构。 高性能系统架构,主要包括两部分内容,性能测试与性能优化。性能优化又可以细分为硬件优化、中间件优化、架构优化及代码优化,知识架构图如…