docker进入容器运行命令详细讲解

news2024/9/28 3:24:03

在这里插## 标题入图片描述

大家好,我是程序员小羊!

前言:

在 Docker 中,进入容器并运行命令是常见的操作,尤其是当你想要调试、检查日志或手动运行某些程序时。Docker 提供了几种方式来进入容器和执行命令。

前提条件

确保你的 Docker 容器是正在运行的。你可以通过以下命令查看所有正在运行的容器:

docker ps

1. 使用 docker exec 进入容器并运行命令

docker exec 是最常用的进入容器并执行命令的方式。

步骤:
  • 找到正在运行的容器的 CONTAINER IDNAME
  • 使用 docker exec 命令进入容器并执行命令。
示例:

假设容器的 CONTAINER ID123abc456defNAMEmy_container

进入容器的交互式 Bash shell:
docker exec -it 123abc456def /bin/bash

或者:

docker exec -it my_container /bin/bash
  • -i:保持标准输入打开。
  • -t:分配一个伪终端。
  • /bin/bash:表示启动一个 bash shell(如果容器中没有 bash,可以尝试 /bin/sh)。
进入容器的交互式 Shell 之后:

一旦进入容器的 shell,你就可以像在普通 Linux 服务器中一样运行命令。例如:

ls
cd /path/to/directory
cat /etc/hostname
在容器内直接执行命令:

如果你不想进入容器的 shell,而是只想执行某个命令并返回结果,你可以直接执行以下命令:

docker exec -it 123abc456def ls /var/log

这将在容器中运行 ls /var/log 命令并显示结果。

2. 使用 docker attach 连接到容器

docker attach 用于连接到一个正在运行的容器的主进程(通常是容器启动时运行的进程)。但是,这种方式并不像 docker exec 那样启动一个新的 shell,而是附加到容器启动时的主进程,通常用来查看容器的输出日志。

示例:
docker attach 123abc456def

或:

docker attach my_container

注意:如果你使用 docker attach 并尝试退出,你可能会终止容器的主进程。因此,如果只是想查看输出而不关闭容器,请谨慎使用。

3. 使用 docker run 启动并进入容器

如果你希望启动一个新容器并在启动时进入 shell,可以使用 docker run 命令。

示例:
docker run -it ubuntu /bin/bash

这将启动一个 Ubuntu 容器并进入交互式 bash shell。

4. 使用 docker exec 连接到容器的 sh Shell

某些精简的 Docker 容器(例如 alpine)不包含 bash,而是使用更轻量的 sh shell。你可以使用以下命令连接到 sh

示例:
docker exec -it 123abc456def /bin/sh

5. 使用 docker exec 运行后台任务

有时你可能想在容器中运行某些命令,而不保持交互式 shell 打开。可以在容器中运行后台任务。

示例:
docker exec 123abc456def some_command &

这将在容器中后台执行 some_command

6. 退出容器

如果你正在交互式 shell(如 bashsh)中:

你可以使用 exit 命令退出:

exit
如果你使用的是 docker attach

你可以使用 Ctrl + P,然后按 Ctrl + Q 来分离(detach)而不停止容器。

7. 常见问题

Q1: docker exec 提示 “command not found”?

可能容器内没有安装你尝试使用的 shell 或命令。可以尝试 /bin/sh,或者确保容器内有你需要的命令。

Q2: 如何进入已经停止的容器?

你无法直接进入一个已经停止的容器,但可以重新启动它:

docker start 123abc456def
docker exec -it 123abc456def /bin/bash

总结

  • docker exec 是最常用的进入容器并执行命令的方法。
  • docker attach 适用于连接到容器的主进程,适合查看输出日志。
  • 使用 docker run 可以启动并直接进入容器。
  • 熟悉容器中常用的 shell (bash, sh) 会帮助你更好地与容器交互。

结尾

今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

C++基础面试题 | 什么是C++中的虚继承?

文章目录 回答重点菱形继承问题虚继承解决菱形继承问题虚继承的二义性解决 虚继承总结拓展知识:virtual关键字的用法1. 虚函数 (Virtual Function)2. 纯虚函数 (Pure Virtual Function)3. 虚析构函数 (Virtual Destructor)4. 虚继承 (Virtual Inheritance)5. 虚函数…

一篇文章带你入门机器学习 Part1 -->Machine Learning from Scratch

学习网站:Machine Learning from Scratch Machine Learning from Scratch (Part1神经网络) 神经网络——Neural Networks神经网络是如何工作的?训练神经网络 神经网络——Neural Networks 在人工神经网络的背景下:一个神经元是一…

046全排列

题意 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 提示&#xff1a; 1 < nums.length < 6 -10 < nums[i] < 10 nums 中的所有整数 互不相同 难度 中等 示例 示例 1&#xff1a; 输入&#xff1…

uniapp+若依 开发租房小程序源码分享

1、使用Uniapp开发的前台&#xff0c;基于 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到iOS、Android、Web&#xff08;响应式&#xff09;、以及各种小程序 2、基于SpringBoot的权限管理系统&#xff0c;易读易懂、界面简洁美观。 核心…

WordBN字远笔记!更新1.2.2版本|Markdown编辑器新增高亮功能,界面新增深色模式

WordBN字远笔记1.2.2版本更新描述 WordBN字远笔记在1.2.2版本中进行了多项重要的更新与改进&#xff0c;旨在提升用户的编辑体验和视觉舒适度。 以下是本次更新的两大亮点&#xff1a;Markdown编辑器新增高亮功能以及界面新增深色模式。 1. Markdown编辑器新增高亮功能 在1…

零倾覆力矩点(ZMP)

系列文章目录 前言 在机器人学中&#xff0c;零倾力矩点&#xff08;ZMP&#xff09;是一个特征点&#xff0c;主要用于足式运动。在下文的一些假设中&#xff0c;我们将看到&#xff0c;它非正式地代表了一个系统接触反作用力的结果点。例如&#xff0c;下图中的刚体处于静态平…

leetcode:布尔运算(动态规划版)

最近又要考试&#xff0c;勉励自己复习一些之前学过的&#xff01;&#xff01;&#xff01; 开始使用的是DFS&#xff0c;遍历所有可能的情况&#xff0c;发现超时&#xff01; 下面的是动态规划的一个模板&#xff0c;dp[i][j][result]表示从s的第i个元素到第个元素&#xf…

Auracast认证:蓝牙广播音频的革新之旅

低功耗音频&#xff08;LE Audio&#xff09;技术的突破&#xff0c;为蓝牙世界带来了前所未有的广播音频功能。Auracast™&#xff0c;作为蓝牙技术联盟精心打造的音频广播解决方案&#xff0c;正引领着一场全新的音频分享革命。它不仅革新了传统蓝牙技术的局限&#xff0c;更…

HuggingFace Embedding 转为 Ollama Embedding

Ollama 是基于 LlamaCpp 开发的 CPU 上的推理引擎&#xff0c;通过 LlamaCpp 提供的脚本可以将大语言模型装换为 gguf 的二进制跟是文件&#xff0c;从而通过 Ollama 就行推理。Ollama 支持HuggingFace 大多开源模型&#xff0c;例如 Llama、Qwen、Gemma 和 Phi3 等等。 GGUF …

【Leetcode:2848. 与车相交的点 + 模拟计数】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

软件研制功能点拆分

最近需要进行软件研制概算明细表中的估算对象原始功能点&#xff0c;记录一下学习过程&#xff0c;共有EI(external input 外部输入)、EO(外部输出)、EQ(外部查询)、ILF(internal logic 内部逻辑文件)、EIF(外部接口文件)五个。 功能点计数项分为数据功能&#xff08;逻辑文件&…

【数据仓库】数据仓库常见的数据模型——范式模型

目录 一、范式 1、第一范式 2、第二范式 3、第三范式 4、进一步范式化&#xff1a;BCNF、4NF 和 5NF 简介 &#xff08;1&#xff09;Boyce-Codd 范式&#xff08;BCNF&#xff09; &#xff08;2&#xff09;第四范式&#xff08;4NF&#xff09; &#xff08;5&#x…

光华里社区“电亮生活”行动:智能科技携手志愿温情,老旧小区焕发新生机

在朝阳区建外街道光华里社区&#xff0c;一场关于“电”的革命正悄然改变着居民的生活面貌。面对老旧小区普遍存在的电力设施陈旧、线路老化、电压不稳等老大难问题&#xff0c;社区党委没有坐视不管&#xff0c;而是携手北京中兴物业管理有限公司广联物业管理中心党支部&#…

泽众P-One性能测试平台支持分布式全链路压测

在当今数字化转型加速的时代&#xff0c;高性能、高可用性的系统已成为企业竞争力的核心要素之一。为了确保系统能够在高并发、大数据量的环境下稳定运行&#xff0c;分布式全链路压测成为了不可或缺的一环。P-One凭借其强大的功能&#xff0c;支持分布式全链路压测&#xff0c…

什么是 SMB 服务器以及它如何工作?

在本文中&#xff0c;您将了解 SMB 服务器以及它们如何促进网络文件共享。 我们将介绍它们的基本功能、主要特性以及如何安全地设置它们。无论您是新手还是需要复习&#xff0c;本指南都将帮助您更好地了解 SMB 服务器。 什么是 SMB 服务器&#xff1f; SMB&#xff08;服务器…

day19JS-AJAX数据通信

1. 什么是AJAX 原生生js中有两种通信&#xff0c;一个ajax&#xff0c;还有一个是fetch。 AJAX 并不是编程语言&#xff0c;是一种从网页访问 Web 服务器的技术。AJAX 代表异步 JavaScript 和 XML。 AJAX 使用浏览器内建的 XMLHttpRequest 对象从 web 服务器请求数据&#xff0…

【开放词汇检测】MM-Grounding-DINO论文翻译

摘要 Grounding-DINO 是一种先进的开放式检测模型&#xff0c;能够处理包括开放词汇检测&#xff08;Open-Vocabulary Detection&#xff0c;OVD&#xff09;、短语定位&#xff08;Phrase Grounding&#xff0c;PG&#xff09;和指代表达理解&#xff08;Referring Expressio…

Java多线程——模拟接力赛跑

题目&#xff1a; 多人参加1000米接力跑 每人跑100米&#xff0c;换下个选手 每跑10米显示信息 解题思路&#xff1a; 1.必须要用到多线程的锁&#xff0c;否则就会出现三个选手乱跑的情况&#xff0c;我们需要一个一个跑 2.使用给oneRunner上锁的方式更细的控制资源比直接给…

qt画板v1.0

qt图形视图做的一个工具&#xff0c;具备画板功能&#xff0c;对初学习有很大作用

搭建内网文件服务器(FTP),以及实现内网Gitee

一、实现windows搭建FTP&#xff0c;实现文件共享和管理 具体步骤&#xff1a; 1.打开控制面板&#xff0c;搜索功能 2.打开这几个配置 3.打开IIS&#xff0c;添加FTP站点即可 二、实现内网Gitee 参考博客&#xff1a; Gitblit服务器搭建及Git使用-CSDN博客 jdk1.8.0的安…