docker执行容器内的shell_Docker 容器shell
版权所有,未经许可,禁止转载Docker镜像是一个文件系统,有时需要进入容器内部的shell,例如:查看配置文件的内容。正在运行的容器,可以通过docker exec命令进入它的shell终端:docker exec -it/bin/bash-i 标志告诉docker保持stdin打开(以便您可以输入命令)。-t 标志分配一个伪tty。举例说明1. 运行nginx镜像[root@qikegu ..
版权所有,未经许可,禁止转载
Docker镜像是一个文件系统,有时需要进入容器内部的shell,例如:查看配置文件的内容。
正在运行的容器,可以通过docker exec命令进入它的shell终端:
docker exec -it /bin/bash
-i 标志告诉docker保持stdin打开(以便您可以输入命令)。
-t 标志分配一个伪tty。
举例说明
1. 运行nginx镜像
[root@qikegu docker]# docker run -d nginx
2.查看nginx容器ID
[root@qikegu docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
87c324a31476 nginx "nginx -g 'daemon of…" 54 seconds ago Up 53 seconds 80/tcp trusting_vaughan
3. 进入容器,运行一个bash shell
[root@qikegu docker]# docker exec -it 87c324a31476 /bin/bash
root@87c324a31476:/#
可以看到我们进入了容器中的shell了。
4. 在容器的shell中执行命令
root@87c324a31476:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@87c324a31476:/# ps
bash: ps: command not found
容器中不存在的命令(上面的ps)不能执行
5. 退出shell
直接使用exit命令退出shell,容器自身也将停止运行。
使用ctrl + p + q,可以退出shell,容器仍将继续运行。
docker attach, docker exec, docker run 区别
docker attach - 不是用于在容器中运行额外的东西,而是用于附加到正在运行的进程。如果容器中正在运行的是nginx,会attach到nginx进程,获得nginx的标准输出。
docker exec - 专门用于在已经启动的容器中运行新东西,无论是shell还是其他进程
docker run - 用于运行新容器,可以指定容器中要运行的命令。如果不指定,运行镜像默认命令,例如:运行nginx容器时,docker run nginx没有指定命令,会运行nginx应用,docker run -it nginx /bin/bash,指定了/bin/bash,会运行此命令。
更多推荐
所有评论(0)