当前位置: 首页 > article >正文

使用 Docker 进入容器并运行命令的详细指南

Docker 是一款开源的容器化平台,它可以将应用程序和依赖环境打包到一个可移植的“容器”中,以保证应用不受运行环境的影响。使用 Docker 容器化应用后,有时需要进入容器内部执行一些命令进行调试或管理。

一、Docker 基础命令

在开始进入容器之前,确保你的机器上已安装 Docker 并启动服务。基本的 Docker 命令包括:

 

bash

# 启动 Docker 服务 sudo systemctl start docker # 检查 Docker 服务状态 sudo systemctl status docker # 查看 Docker 版本 docker --version

二、查看 Docker 容器

在进入容器之前,首先要确保容器已经在运行。以下命令可以查看当前正在运行的容器:

 

bash

# 查看正在运行的容器 docker ps # 查看所有容器(包括停止的) docker ps -a

执行 docker ps 命令后,会输出类似以下的信息:

 

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e5b524115303 nginx:latest "nginx -g 'daemon of…" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp nginx-container

三、进入 Docker 容器

3.1 使用 docker exec 命令

docker exec 命令可以在运行的容器中执行命令,并启动一个新的交互式 Shell 会话。

 

bash

# 语法:docker exec [OPTIONS] CONTAINER COMMAND [ARG...] # 交互式进入容器 docker exec -it CONTAINER_ID /bin/bash

例如,进入名称为 nginx-container 的容器:

 

bash

docker exec -it nginx-container /bin/bash

3.2 使用 docker attach 命令

docker attach 命令将连接到运行中容器的标准输入、输出和错误流。

 

bash

# 连接到容器的 Bash 会话 docker attach CONTAINER_ID

需要注意的是,如果退出 docker attach 会话,可能会导致容器停止。使用 Ctrl + PCtrl + Q 组合键可以安全地退出会话并保持容器运行。

3.3 使用 docker run 命令

对于尚未运行的容器,可以使用 docker run 命令启动并进入容器。这个命令将创建一个新的容器并启动一个交互式 Shell。

 

bash

# 语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...] # 创建并启动一个交互式容器 docker run -it IMAGE_NAME /bin/bash

例如,从 Ubuntu 镜像创建并启动一个新容器:

 

bash

docker run -it ubuntu /bin/bash

四、常用命令示例

4.1 查看容器内部文件系统

 

bash

# 查看当前目录 ls # 切换到另一个目录 cd /var/log # 查看文件内容 cat /var/log/nginx/access.log

4.2 安装软件包

在容器内,通过包管理工具(如 aptyum 等)安装软件包。例如,在 Ubuntu 容器中:

 

bash

# 更新软件包列表 apt-get update # 安装软件包 apt-get install -y vim

4.3 查看进程和系统信息

 

bash

# 查看运行的进程 ps aux # 查看容器的系统资源使用情况 top # 查看磁盘使用情况 df -h # 查看网络接口信息 ifconfig

4.4 运行和管理服务

在容器中可以直接启动或管理服务。例如,启动 Nginx 服务:

 

bash

# 启动 Nginx 服务 service nginx start # 查看 Nginx 服务状态 service nginx status

4.5 退出容器

当完成在容器内的操作后,可以使用 exit 命令退出容器的 Shell。

 

bash

# 退出容器 exit

如果使用 docker exec 启动的交互式会话,退出后容器将继续运行。如果使用 docker run 创建并启动的新容器,退出会话后容器将停止。

五、高级操作

5.1 复制文件到和从容器

有时需要在宿主机和容器之间复制文件,docker cp 命令可以实现这一功能。

 

bash

# 从宿主机复制文件到容器 docker cp /path/on/host CONTAINER_ID:/path/in/container # 从容器复制文件到宿主机 docker cp CONTAINER_ID:/path/in/container /path/on/host

例如,将宿主机上的文件 nginx.conf 复制到容器的 /etc/nginx/nginx.conf

 

bash

docker cp nginx.conf nginx-container:/etc/nginx/nginx.conf

5.2 重启容器

在某些情况下,可能需要重启容器以应用更改。

 

bash

# 重启容器 docker restart CONTAINER_ID

5.3 停止和删除容器

 

bash

# 停止容器 docker stop CONTAINER_ID # 删除容器 docker rm CONTAINER_ID

六、常见问题和解决方法

6.1 进程无法退出

如果在 docker attach 会话中进程无法退出,使用 Ctrl + PCtrl + Q 组合键可以安全地退出会话并保持容器运行。

6.2 挂载卷问题

若出现数据卷挂载的问题,可以检查宿主机路径和容器路径是否正确。

 

bash

docker run -it -v /host/path:/container/path IMAGE /bin/bash

6.3 权限问题

进入容器时可能遇到权限不足的情况,通过 sudo 提升权限解决。

 

bash

# 使用 sudo 运行命令 sudo docker exec -it CONTAINER_ID /bin/bash


http://www.kler.cn/news/304944.html

相关文章:

  • GANs-生成对抗网络
  • intellij idea创建java项目
  • MinGW探源:名称背后的故事、发音指南与历史沿革
  • (179)时序收敛--->(29)时序收敛二九
  • linux -L4.linux 暂停和启动进程
  • VUE工程中axios基本使用
  • SharePoint 创建本地 Web 部件 workbench 报错解决
  • quartus pin 分配(三)
  • Kubernetes (k8s)v1.27.1版本安装步骤
  • Jupyter Notebook | 安装 rise 插件后显示幻灯片失败
  • 【C#生态园】完整解读C#音频处理库:功能、安装配置和使用场景一网打尽
  • JavaScript 基础 - 第16天_AJAX入门
  • 什么是设计模式,要掌握那些知识
  • 若依笔记(六):前后端token鉴权体系
  • JUnit 5 详解
  • Redisson实现分布式锁
  • conda根据配置文件自动切换环境-----模仿 rvm 的 .ruby-version机制
  • 新能源汽车安全问题如何解决?细看“保护罩”连接器的守护使命
  • 【华为OD流程】性格测试选项+注意事项
  • 机器学习和深度学习区别
  • Python3 SMTP发送邮件
  • SOMEIP_ETS_108: SD_Deregister_from_Eventgroup
  • 什么是 Grafana?
  • 【C++题解】1406. 石头剪刀布?
  • SQL server 日常运维命令
  • 【初阶数据结构】详解树和二叉树(一) - 预备知识(我真的很想进步)
  • TiDB 数据库核心原理与架构_Lesson 01 TiDB 数据库架构概述课程整理
  • 基于深度学习的农作物病害检测
  • Linux 调试器 GDB 使用指南
  • AI论文精读笔记-Generative Adversarial Nets(GAN)