当前位置: 首页 > 编程笔记 >

Docker 将Shell放入正在运行的(分离的)容器中

松越
2023-03-14
本文向大家介绍Docker 将Shell放入正在运行的(分离的)容器中,包括了Docker 将Shell放入正在运行的(分离的)容器中的使用技巧和注意事项,需要的朋友参考一下

示例

登录到正在运行的容器

用户可以使用exec命令在新的交互式bash shell中输入正在运行的容器。

假设调用了一个容器,jovial_morse则可以通过运行以下命令获取交互式的伪TTY bash shell:

docker exec -it jovial_morse bash

使用特定用户登录正在运行的容器

如果要以特定用户身份输入容器,可以使用-u或--user参数进行设置。用户名必须存在于容器中。

-u, --user           用户名或UID(格式:<name|uid>[:<group|gid>])

此命令将登录到jovial_morse与dockeruser用户

docker exec -it -u dockeruser jovial_morse bash

以root用户身份登录到运行中的容器

如果要以root用户身份登录,只需使用该-u root参数即可。根用户始终存在。

docker exec -it -u root jovial_morse bash

登录图像

您也可以使用run命令登录映像,但这需要映像名称而不是容器名称。

docker run -it dockerimage bash

登录到中间映像(调试)

您也可以登录在Dockerfile构建期间创建的中间映像。

输出 docker build .

$ docker build .
Uploading context 10240 bytes
Step 1 : FROM busybox
Pulling repository busybox
 ---> e9aa60c60128MB/2.284 MB (100%) endpoint: https://cdn-registry-1.docker.io/v1/
Step 2 : RUN ls -lh /
 ---> Running in 9c9e81692ae9
total 24
drwxr-xr-x    2 root     root        4.0K Mar 12  2013 bin
drwxr-xr-x    5 root     root        4.0K Oct 19 00:19 dev
drwxr-xr-x    2 root     root        4.0K Oct 19 00:19 etc
drwxr-xr-x    2 root     root        4.0K Nov 15 23:34 lib
lrwxrwxrwx    1 root     root           3 Mar 12  2013 lib64 -> lib
dr-xr-xr-x  116 root     root           0 Nov 15 23:34 proc
lrwxrwxrwx    1 root     root           3 Mar 12  2013 sbin -> bin
dr-xr-xr-x   13 root     root           0 Nov 15 23:34 sys
drwxr-xr-x    2 root     root        4.0K Mar 12  2013 tmp
drwxr-xr-x    2 root     root        4.0K Nov 15 23:34 usr
 ---> b35f4035db3f
Step 3 : CMD echo Hello world
 ---> Running in 02071fceb21b
 ---> f52f38b7823e

注意---> Running in 02071fceb21b输出,您可以登录以下图像:

docker run -it 02071fceb21b bash
           

 类似资料:
  • 我一直在使用localstack开发一个针对Local的服务。我刚刚通过运行了他们的docker映像

  • 问题内容: 是否可以备份正在运行的Docker容器?该命令适合这样做吗? 问题答案: 一位朋友发表了评论 您好Slava,很抱歉您的问题已关闭。作为记录,Slava谈论的是docker.io,这是Linux容器的运行时。是的,这是一种合适的方法。它将生成整个容器文件系统状态的压缩包,并将其转储到stdout上。所以 将产生可用的tarball。您可以使用以下命令重新导入压缩包 请注意,原始元数据(

  • 问题内容: 我正在服务器上运行多个docker容器,并且需要对所有容器上的存储库执行git pull。 我试过使用此: 但是它会出错: 它曾经工作过,但是后来突然停止工作,没有明显原因(我没有更改任何docker配置) 注意:的输出仅是容器ID: 问题答案: 使用Docker exec可以一次在容器上运行该命令,但是从您要在所有正在运行的容器上运行该命令的问题出发,就可以了。 我假设git已经安装

  • 问题内容: 我正在尝试创建用于设置Docker容器的Shell脚本。我的脚本文件如下所示: 运行此脚本文件将在新调用的bash中运行容器。 现在,我需要运行一个脚本文件(test.sh),该文件已经位于上述给定的shell脚本的容器内(例如:cd /path/to/test.sh && ./test.sh),该怎么做? 问题答案: 您可以使用以下命令在正在运行的容器中运行命令: 并从bash会话运

  • 我有一个Docker的图像火花Jupyter(https://github.com/zipfian/spark-install) 我为hadoop准备了另一个docker图片。(https://github.com/kiwenlau/hadoop-cluster-docker) 我在Ubuntu中运行上述两张图片中的两个容器。对于第一个容器:我能够成功地启动jupyter并运行python代码:

  • 正如文档中所说,如果我想在docker中运行测试容器,我必须考虑以下几点: null