6.Docker之终端交互能力
一、在docker内运行应用程序
docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器启动后运行一个应用程序,在这里只是输出一句话:hello world!
命令说明:
docker::Docker 的二进制执行文件;
run:与前面的 docker 组合来运行一个容器;
tomcat:7:指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库Docker Hub 下载公共镜像;
/bin/echo “Hello world”:在启动的容器里执行的命令
以上命令的意思可以理解为:Docker 以 tomcat:7镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”并输出结果,最后关闭容器。
当我们查看正在运行的容器时,却没发现有容器运行着:
原因在于:
在没有 docker 容器的时候,在终端(terminal)中运行 shell 命令,我们知道当终端退出时(比如关闭终端窗口或退出 ssh 会话),终端中执行的命令也会结束。
所以,当我们在终端中执行持续运行的任务或服务时,我们需要让其跳出当前 shell 进程,在后台运行(比如以 daemon 方式运行)即Docker容器的主线程结束,容器会退出。
我们需要让 Docker 容器在后台以守护态(Daemonized)形式运行,可以通过添加 -d 参数来实现。
二、运行交互式容器
交互,即交流互动,所以交互式容器是指我们可以和运行中的容器进行“对话”,说白了就是我们可以进入容器中进行任何操作。
命令:docker run -i -t 镜像 /bin/bash
- - t:在新容器内指定一个伪终端或终端。
- - i:允许你对容器内的标准输入 (STDIN) 进行交互。
我们尝试在webapps内创建一个logs目录,然后退出交互模式:
接着,我们启动自动帮我们创建的容器,进入webapps目录查看是否存在logs目录:
总结:
①.使用docker run -i -t 镜像 /bin/bash命令交互,是在新容器内指定一个伪终端或终端,最后会帮我们将这个新容器生成出来;
②.对于已启动的容器,我们可以使用docker exic -it 容器 /bin/bash来达到和运行的容器进行交互
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 趁着过年的时候手搓了一个低代码框架
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现