Docker -it命令与Docker镜像或Docker容器有关。

问题描述 投票:0回答:1

我是一个新的Docker,正在尝试使用101-tutorial docker image()来学习Docker。https:/github.comdockersamples101-tutorial)

enter image description here

在这节课中,他们试图解释当2个容器实例从同一个映像中运行时,那么第一个容器创建的数据在第二个容器中默认是不可用的(除非我们使用容器卷和挂载等)。

第1点和第2点显示,一个ubuntu容器正在运行,并且有一个名为data.txt的文件。

按照我的理解。docker -it 用于访问docker容器内的终端。https:/docs.docker.comenginereferencerun。

但我不明白第3点使用的命令。为什么是 docker run -it ubuntu ls / 命令在Ubuntu镜像上运行,而不是使用容器ID在容器上运行?该命令是否仅用于显示图像内的内容,而不是使用 "容器ID "来显示docker容器内的内容?ls /?

我以为第3点应该创建另一个容器实例,然后运行 ls / 但据 docker ps 我看到我的机器里只有一个ubuntu容器在运行。

docker
1个回答
2
投票

正如它说,在 文件的 docker run:

Docker在隔离的容器中运行进程。容器是在主机上运行的进程。主机可以是本地的,也可以是远程的。当操作者执行docker run时,运行的容器进程是隔离的,它有自己的文件系统,自己的网络,有自己的隔离进程树,与主机分离。

进程结束后,容器会被关闭。

至于你的问题是 "指的是映像还是容器"--你给出映像作为参数来创建容器,然后在创建的容器中运行进程。

一个Docker容器的生命周期是。

  • docker run imagename -> 创建容器 x 来自形象 imagename
  • docker执行器 x ls -> 执行命令 ls运转 容器 x
  • docker停止 x -> 停止容器(但仍可见于...)。docker container ls -a)
  • docker启动 x -> 重新启动容器 x
  • docker停止 x -> 停止容器 x再次
  • docker rm x -> 删除容器 x (现在还 ls -a 不会显示)

0
投票

Docker容器之间是完全隔离的。当你使用镜像创建容器时,会借助命名间隔和cgroups将系统中的一小部分资源隔离出来,然后将镜像中的文件复制到这个隔离环境的资源里面。

当你执行命令 docker run -it ubuntu ls /它创建了一个新的容器,运行指定的命令。ls / 并给你一个交互式的tty到docker容器使用的 -i-t 标志。

在运行这个过程并向你展示输出后,容器立即退出,因此在输出的 docker ps. 为了检查所创建的容器,请运行 docker ps --all 命令。

© www.soinside.com 2019 - 2024. All rights reserved.