Docker6.Docker进入运行的容器
官放文档地址:https://docs.docker.com/engine/reference/commandline/exec/
docker exec -it 容器id:新的终端进入运行中的容器
#语法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
新的终端,可以直接输入命令进行操作
OPTIONS可选项 | 作用 |
---|---|
–detach , -d | 分离模式:在后台运行命令 |
–detach-keys | 重写用于分离容器的键序列 |
–env , -e | 设置环境变量 |
–env-file | 在环境变量文件中读取 |
–interactive , -i | 即使没有连接,也要打开STDIN(标准输入流、标准输入设备) |
–privileged | 将扩展权限授予命令 |
–tty , -t | 分配伪TTY(分配一个伪tty设备,以便可以直接与远程应用程序进行交互) |
–user , -u | 用户名或UID(格式:<name\uid>[:<group可比gid>]) |
–workdir , -w | 容器内的工作目录 |
docker exec -it 容器id /bin/bash
docker exec -it 容器id /bin/bash
如果报错:
[haokai@localhost ~]$ sudo docker exec -it 1015b6adbb9d bin/sh
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "bin/sh": stat bin/sh: no such file or directory: unknown
#解决办法:
docker exec -it 容器id /bin/sh
or
docker exec -it 容器id bash
or
docker exec -it 容器id sh
docker attach 容器id:不开启新终端进入容器
#语法:
docker attach [OPTIONS] CONTAINER
OPTIONS可选项 | 默认值 | 作用 |
---|---|---|
–detach-keys | 重写用于分离容器的键序列 | |
–no-stdin | 不要附加STDIN | |
–sig-proxy | true | 代理所有接收到进程的信号 |
依旧会执行容器的旧命令