Docker 容器shell

2022-12-24,,

版权所有,未经许可,禁止转载


章节

Docker 介绍
Docker 和虚拟机的区别
Docker 安装
Docker Hub
Docker 镜像(image)
Docker 容器(container)
Docker 容器操作
Docker 容器shell
Docker Dockerfile
Docker 构建镜像(docker build)
Docker Dockerfile指令
Docker 例子
Docker Java 例子
Docker PHP 例子
Docker Python 例子
Docker Ubuntu 例子
Docker NGINX 例子
Docker Compose
Docker 网络


Docker镜像是一个文件系统,有时需要进入容器内部的shell,例如:查看配置文件的内容。

正在运行的容器,可以通过docker exec命令进入它的shell终端:

docker exec -it <container-id> /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,会运行此命令。

Docker 容器shell的相关教程结束。

《Docker 容器shell.doc》

下载本文的Word格式文档,以方便收藏与打印。