news 2026/8/31 10:20:09

Docker 容器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker 容器

容器是 Docker核心概念。
简单的说,容器是独立运行的一个或一组应用,以及它们的运行环境。
对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和运行在上面的应用。

咱们可以从对象和类的关系来看容器与镜像的关系

查看容器的状态

docker ps //查看所有容器 docker ps-a //查看所有的容器(包含运行和退出) docker container 1s dockeracontainer ls-a

docker启动容器

启动容器有二种方式,一种是基于镜像新建一个容器并启动,一种是将在终止状态(stopped)的容器重新启动

docker run 参数 镜像名称:tag 执行的命令 -i 保持和docker容器内的交互,启动容器时,运行的命令结束后,容器依然存活,没有退出(默认是会退出,即停止 -t 为容器的标准输入虚拟一个tty -d 后台运行容器 --rm 容器在启动后,执行完成命令或程序后就销毁 --name 给容器起一个目定义名称 -p 宿主机:内部端口
docker start id docker start name

停止容器

docker stop id // 按id删除 docker stop name // 按名字删除 docker stop $(docker ps -a -q) // 删除所有容器

删除容器(不能删除运行中的容器)

docker rm id docker rm $(docker ps -a)

访问Tomcat

先给几个防火墙的命令

sudo ufw status # 或者查看更详细的状态 sudo ufw status verbose sudo ufw allow 8080/tcp # 开启端口(以开放 8080/tcp 为例) sudo ufw deny 8080/tcp # 方法一:直接拒绝该端口访问 sudo ufw delete allow 8080/tcp # 方法二:删除之前添加的 allow 规则 sudo ufw enable # 开启防火墙(并设置开机自启) sudo ufw reload #重载/重启防火墙(使新规则生效) sudo ufw disable #停止并禁用防火墙(关闭且取消开机启动)

在浏览器中输入查看

首先在ubuntu中用下面的命令找到真是的ip地址,

ip a

回到浏览器,输入:

http://刚刚查到的真实IP:8080

可以看到404,下面也会出现tomcat,现在不要着急,现在进入容器来解决这个问题


进入容器

docker exec -i-t参数 docker exec后边可以跟多个参数,这里主要说明-i-t参数。 只用i参数时,由于没有分配伪终端,界面没有我们熟悉的Linux命令提示符,但命令执行结果仍然可以返 回。 当-it参数一起使用时,则可以看到我们熟悉的Linux命令提示符。 dockerexec -it 容器ID (Names) bash

现在浏览器中还是没有,并且很多命令都不能使用了,里面很干净

我们直接进入webapps文件

创建ROOT

进入刚创建的ROOT,因为vi命令也不能使用,我们直接使用echo往里面些内容

之后返回浏览器,发现浏览器上有显示了

返回虚拟机,发现也会对应的内容

退出容器(退出容器并不会导致容器停止)

exit

宿主机与容器之间交换文件

docker cp [OPTIONS] CONTAINER:PATH LOCALPATH //容器中 复制到宿主机 docker cp [OPTIONS] LOCALPATH|- CONTAINER:PATH //宿主机 复制到 容器中 例如: 宿主机复制一个图片到容器中:将png图片复制到了容器指定目录下 docker cp guoweixin.png tomcat2:/usr/local/tomcat/webapps/R00T 将容器内的index.jsp复制出来,修改再复制回去 docker cp tomcat2:/usr/local/tomcat/webapps/R00T/index.jsp /root

例如:我们现启动容器,找到上次我们的root路径

在一个新的终端中,使用上面的cp指令

发现了我们上面的index.html文件,现在我们可以对他进行修改,修改后别忘了再复制给docker容器

查看日志

docker logs 容器名称/ID docker logs -f -t --since="2018-12-1" --tail=10 qfjy_exam --since:此参数指定了输出日志开始日期,即只输出指定日期之后的日志。 -f:查看实时日志 -t:查看日志产生的日期 -tail=10:查看最后的10条日志 qfy_exam:容器名称 docker logs -f --tail=10 容器名称
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 17:20:32

GESP C++考试五级语法知识(二、埃氏筛和线性筛)

🌟《素数王国的两种超级筛子》故事前言:1、在数字王国里,国王需要一份 素数名单。(1)比如:1 ~ 30 之间的所有素数(2)答案应该是:2 3 5 7 11 13 17 19 23 29(3…

作者头像 李华
网站建设 2026/7/14 17:20:32

序:Hello, Robot!

具身智能(Embodied AI),是2026年最硬核、最性感、但也最容易让人一头雾水的赛道。每天都有新的论文砸向 Arxiv,硅谷的初创公司融资新闻刷屏,但很少有人能给你一套从硬件到算法、从传统到SOTA的、系统化的技术全栈梳理。…

作者头像 李华
网站建设 2026/7/14 17:20:33

用Matlab玩转决策分类树:从构建到可视化

Matlab算法:决策分类树,给你的数据画棵树 Matlab算法:建立决策分类树,根据节点和层剪个枝,决策树模型可视化,赶紧把这棵树带回家。 数据程序分开,便于使用,注释详细,注意…

作者头像 李华
网站建设 2026/7/14 17:20:33

【Linux文件系统】Linux文件系统与设备驱动

普通文件、目录、硬盘、U盘、键盘、显示器,甚至进程信息和网络连接…… 在Linux看来,它们统统都可以被抽象成一个可以打开、读写、关闭的“文件”。这样做的好处是统一了接口。对于应用程序员来说,他不需要知道操作的对象到底是什么&#xff…

作者头像 李华
网站建设 2026/7/14 17:20:45

自动化——2.Python进阶——函数

Python进阶函数内置函数自定义函数解包匿名函数回调函数函数 函数介绍: 1.函数是一段代码的组合,用来实现具体的功能 2.内置函数可以直接调用 3.自定义函数可以根据业务需要设计不同的实现代码 内置函数 内置函数可以直接调用,例如print()函…

作者头像 李华