建立相关的测试容器

  • 1.只有-d
[root@iZwz908j8pbqd86doyrez5Z test]# docker run -d -p 8081:8080 tomcat:9.0
  • 2.只有-it
[root@iZwz908j8pbqd86doyrez5Z test]# docker run -it -p 8082:8080 tomcat:9.0

输出了tomcat启动相关的指令台指令,但无法交互(这里用ctrl+c退出)

  • 3.有-it...bash
[root@iZwz908j8pbqd86doyrez5Z test]# docker run -it -p 8083:8080 tomcat:9.0 /bin/bash

直接进入了指令台(这里用ctrl+p+q退出)

  • 4.有-it也有-d
[root@iZwz908j8pbqd86doyrez5Z test]# docker run -d -it -p 8084:8080 tomcat:9.0 /bin/bash

查看状态

[root@iZwz908j8pbqd86doyrez5Z test]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
be6f31b74cc9        tomcat:9.0          "/bin/bash"         4 minutes ago       Up 4 minutes        0.0.0.0:8084->8080/tcp   wonderful_sammet
03472df49c1f        tomcat:9.0          "/bin/bash"         5 minutes ago       Up 5 minutes        0.0.0.0:8083->8080/tcp   naughty_rhodes
74b8957aec16        tomcat:9.0          "catalina.sh run"   5 minutes ago       Up 5 minutes        0.0.0.0:8081->8080/tcp   trusting_lichterman

注:可以看到第2个测试(8082端口)已经停止了,因为没有用-d开启后台,指令台退出了,程序也就关了;第三种方式虽然没有用-d,但我在退出时是用ctrl+p+q,而不是exit直接退出,随意进程也还没有停止

尝试使用attach命令(进入已经存在的一个终端)

  • 1
[root@iZwz908j8pbqd86doyrez5Z ~]# docker attach 74b8957aec16

进入空白,因为本身就没有打开过终端命令行

  • 3
[root@iZwz908j8pbqd86doyrez5Z ~]# docker attach 03472df49c1f

成功进入命令行

  • 4
[root@iZwz908j8pbqd86doyrez5Z ~]# docker attach be6f31b74cc9

成功进入命令行