Docker命令-docker exec-在运行的容器中执行命令

描述

在运行的容器中执行命令

使用

$ docker exec [options] container command [arg...]

例子简单展示:

# 进入redis 控制台
docker exec -it 2498a3301c34 redis-cli
# i 展示容器输入信息
# t 命令行交互模式
# 后面数字字母表示 docker ps 命令得到的 容器的 id

选项

名称 默认 描述
--detach, -d 后台运行模式,在后台执行命令相关命令
--detach-keys 覆盖容器后台运行的一些参数信息
--env, -e 设置环境变量
--interactive, -i 展示容器输入信息STDIN
--privileged 为命令提供一些扩展权限
--tty, -t 命令行交互模式
--user, -u 设置用户名(format: <name
--workdir, -w 指定容器内的目录

docker exec是需要容器处于运行中且PID 1进程也处于运行中才能执行的操作。命令执行后会进入容器的默认工作目录,如果在Dockerfile中指定了工作目录,则会进入Dokcerfile指定的目录,如果命令中指定了工作目录-w则会进入该目录。

使用示例

  1. 启动一个容器,并且开启一个bash会话。
$ docker run --name ubuntu_bash --rm -i -t ubuntu bash
  1. 后台执行命令并且在容器内创建一个文件。
$ docker run -d ubuntu_bash touch /tmp/execWorks
  1. 执行命令,开启一个新的bash会话。
$ docker exec -it ubuntu_bash bash
  1. 执行命令并设置环境变量
$ docker exec -e VAR=1 ubuntu_bash bash

注意:这里的环境变量只会在这次会话中生效。

$ docker exec -it ubuntu_bash bash
  1. 可以通过命令查看容器默认工作目录。
$ docker exec -it ubuntu_bash pwd
/
  1. 执行命令并进入指定的工作目录
$ docker exec -ti -w /root ubuntu_bash pwd
/root
  1. 也可以直接指定bash目录进入终端
$ docker exec -ti ubuntu_bash /bin/bash
本作品采用《CC 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海PHP自学中心 付费知识星球:破解面试:程序员的求职导师
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 欣昊玉
文章
273
粉丝
339
喜欢
558
收藏
1106
排名:64
访问:12.2 万
私信
所有博文
社区赞助商