Docker进入容器运行命令

1、启动容器

ubuntu 镜像为例:

docker run -d --name my_ubuntu_container ubuntu:latest sleep infinity

解释:

  • docker run:创建并启动一个新容器。
  • -d:后台运行容器(detached mode)。
  • --name my_ubuntu_container:为容器指定一个名称。
  • ubuntu:latest:使用 ubuntu 镜像的最新版本。
  • sleep infinity:让容器持续运行而不会退出。

2、进入容器

2.1、进入使用 bash 的容器

docker exec -it my_ubuntu_container /bin/bash

解释:

  • docker exec:在运行中的容器中执行命令。
  • -it:分配伪终端并保持标准输入流(interactive)。
  • my_ubuntu_container:容器名称或 ID。
  • /bin/bash:要执行的命令,这里是启动 bash shell。

2.2、进入使用 sh 的容器

有些镜像可能没有 bash,但通常都有 sh。比如:

docker exec -it my_ubuntu_container /bin/sh

3、在容器内运行命令

进入容器后,你可以在容器内运行各种命令。例如:

# 查看容器内的文件系统
ls -l

# 更新包列表
apt-get update

# 安装软件包
apt-get install -y curl

4、退出容器

要退出容器的 shell 会话,可以输入 exit 命令:

exit

这将会把你带回到宿主机的命令行界面。

5、其他有用的命令

  • 查看所有运行中的容器
docker ps
  • 查看容器日志
docker logs <container_name_or_id>
  • 停止容器
docker stop <container_name_or_id>
  • 删除容器
docker rm <container_name_or_id>
### 如何进入 Docker 容器 #### 使用 `docker exec` 命令 `docker exec` 是一种常见的方法,用于在已运行容器中启动新进程。此命令允许用户通过交互式终端进入容器并执行特定命令。 基本语法如下: ```bash docker exec -it [容器ID或名称] /bin/bash ``` - `-i` 表示保持标准输入流打开,实现交互式操作[^3]。 - `-t` 分配一个伪终端给用户[^3]。 - `[容器ID或名称]` 替换为目标容器的实际 ID 或名称。 - `/bin/bash` 启动 Bash Shell;如果容器未安装 Bash,则可替换为 `/bin/sh`。 例如,假设有一个名为 `my_container` 的容器正在运行,可以通过以下命令进入容器: ```bash docker exec -it my_container /bin/bash ``` 这将在目标容器中启动一个新的 Bash 会话[^2]。 #### 使用 `docker attach` 命令 另一种方式是使用 `docker attach` 命令连接到正在运行容器的标准输入、输出和错误流。需要注意的是,当退出 `docker attach` 会话时,可能会导致容器停止运行,除非明确配置了其他行为[^3]。 基础形式如下所示: ```bash docker attach [容器ID或名称] ``` 尽管如此,在大多数情况下推荐优先考虑 `docker exec` 方法,因为它更加灵活且不会轻易影响容器状态。 #### 示例代码展示 以下是两种不同方式的具体应用实例: ##### 利用 `docker exec` 执行任务 ```bash # 创建测试容器 docker run -d --name test-container ubuntu sleep infinity # 进入容器内部环境 docker exec -it test-container /bin/bash ``` ##### 应用 `docker attach` 查看实时日志 ```bash # 启动另一个持续打印消息的服务端口监听程序所在容器 docker run -d --name log-generator alpine sh -c 'while true; do echo $(date); sleep 1; done' # 实时跟踪输出数据变化情况 docker attach log-generator ``` #### 注意事项 无论采用哪种手段接入容器,请务必确认所选工具满足当前场景需求,并熟悉各自特点以便做出最佳决策。另外还要注意权限管理以及网络设置等因素可能带来的额外约束条件[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生活De°咸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值