docker容器内的attached 和detached模式

Posted 水香木鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker容器内的attached 和detached模式相关的知识,希望对你有一定的参考价值。

博主介绍

📢点击下列内容可跳转对应的界面,查看更多精彩内容!

🍎主页:水香木鱼
🍍专栏:docker


文章目录

简介:这是一篇有关【docker容器内的attached 和detached模式】的文章,博主用最精简的语言去表达给前端读者们。

端口映射 attached模式 detached模式 detached模式转换attached模式

1、Docker端口映射

在开启端口映射之前,你首先要之道Docker对应的容器端口是多少。比如nginx镜像的端口诗80。

知道这个端口后,就可以在启动容器的时候,用-p <port:port> 的形式,启用映射了。

用Nginx举例:

docker container run -p 80:80 nginx

等待项目启动后,打开浏览器窗口,在地址栏输入127.0.0.1,就可以打开nginx的默认网址。

  • 第一个端口是映射到服务器本机的端口;
  • 第二个端口是Docker容器使用的端口

比如你想把Docker的80端口,映射到服务器的90端口,执行如下命令:

docker container run -p 90:80 nginx

2、attached模式

两种模式最简单的对比理解就是:attached模式在前台运行,detached模式在后台运行。

当你打开127.0.0.1网址的时候,PowerShell上打印出了相关的日志(log),平且每访问一次,都会增加一条日志。

也就是说Docker容器的日志会实时的展现到窗口并且占用此端口。这种模式叫做attached模式

在windows系统下并不是一个完整的attached模式,只是帮我们打印出了Log。

现在到Linux服务器上,这时候你按Ctrl+C,就会停止掉Docker服务。而现实中我们工作的环境恰恰是这种Linux环境。

【也就是在Linux上你的操作命令,会直接传递个Docker容器。这个缺点就是很容易误操作,比如在公司的生产环境中,你直接一个Ctrl+C,整个服务就崩掉了,你这个月的绩效也就没有了。】

所以我们需要一个更好的,更稳定的模式。也就是detached模式

注意:attached模式更适用于容器和程序的调试阶段

3、detached模式

detached模式的开启方法,就是加一个参数-d或者--detach

docker run -d -p 80:80 nginx

这次你会看到,和attached模式不同的是,这次输入完命令后,只显示出了容器的编号,并且可以再输入任何命令

就算我们关掉窗口,容器依然运行,也就是他是在系统后台进行运行的。

这种就比较适合在生产环境中运行,停掉和删除容器都需要使用Shell脚本的形式。减少了很多误操作。

4、detached模式转换attached模式

在运行之后,也有需要调试的时候,Docker提供了两个模式间的转换。

比如现在要把detached模式的容器,改为attched模式

docker  attach <ID or Image Name>

相关推荐

⭐doker的多容器操作和强制删除容器的方法
⭐docker创建容器相关命令【详细版】
⭐如何在Linux系统下安装Docker
⭐如何安装Docker桌面版到Windows系统上
⭐在Windows10、Windows11系统下安装Docker

以上是关于docker容器内的attached 和detached模式的主要内容,如果未能解决你的问题,请参考以下文章

docker attach 和 exec 的区别

docker exec 和 docker attach 的区别

如何查看docker 容器目录

docker进入当前正在运行容器的两种方式(exec和attach的区别)

docker进入当前正在运行容器的两种方式(exec和attach的区别)

docker进入当前正在运行容器的两种方式(exec和attach的区别)