首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Docker 容器已经运行情况下,如何对外暴露端口

运维时,你可能会遇到这样问题,那就是Docker 容器已经运行情况下,我希望宿主机外程序,比如数据库客户端,能够连接容器内部端口,如数据库端口。...一旦 Docker 容器已经运行起来后,原则上是不能直接修改容器配置来新增端口。...Docker 容器端口映射是在启动容器时通过 -p 或者 --publish 参数来设置,一旦设置好并且容器运行起来后,这些设置就固定下来了。...不过,如果你需要在已经运行容器对外暴露新端口,有一些间接方法可以尝试: 使用 docker commit 命令创建一个新镜像,然后基于这个新镜像启动一个新容器,并在启动时指定需要暴露端口。...使用 Docker 网络功能,如创建一个新网络桥接或者使用 docker network connect 将容器连接到另一个网络接口,这样可以在不重启容器情况下改变网络设置。

91310
您找到你想要的搜索结果了吗?
是的
没有找到

docker stop 或者 docker kill 不能停止容器

-xe -u docker 然后在短暂时间内 docker ps查看到容器还在运行中,过了一会没有了我们在创建时候会提示这个容器已经存在(如果建立同样名称容器) docker stop 主流程...2,如果超过等待时间之后,还是没收到容器退出消息,那么docker 将使用docker kill方式试图终止容器。...一般情况下,父进程应该立即调用 wait(), 以防僵尸进程时间过长。 如果父进程在子进程之前退出,子进程会变成孤儿进程, 它父进程会变成 PID 1。...因此,init 进程就要对这些进程负责,并在适当时候调用 wait() 方法。 但是,通常情况下,大部分进程不会处理偶然依附在自己进程上随机子进程,所以在容器中,会出现许多僵尸进程。...解决容器进程收不到 SIGTERM 信号 通过上面的解释应该能明白,我们不能正常退出,或者等 10s 才能退出主要原因就是 PID 1 进程不能处理/处理 SIGTERM 信号造成,知道问题所在了

4.1K20

Docker 常用操作命令

启动交互式容器 #启动交互式容器 docker run -i -t IMAGE /bin/bash #退出交互式容器bash,这样容器就会在后台运行 Ctrl+P+Q 在run命令中增加了两个参数...-i -t ,并在容器启动时运行bash命令 i --interactive=true | fasle 默认是falseundefined用来告诉docker守护进程为容器始终打开标准输入 -t...附加到运行容器(进入刚刚退出容器) docker attach 容器名/容器ID 9.查看容器日志 docker logs [-f] [-t] [--tail] 容器名 -f  --follows=...  = "all"   是选择返回结尾处多少数量日志,如果指定的话就返回所有的日志 10....--no-trunc=false   指定不使用截断形式来显示数据,默认情况下我们用images查到列表会截断镜像唯一id -q  --quiet=false  只显示镜像唯一id 14.

46850

docker stop 或者 docker kill 不能停止容器

-xe -u docker 然后在短暂时间内 docker ps查看到容器还在运行中,过了一会没有了我们在创建时候会提示这个容器已经存在(如果建立同样名称容器) docker stop 主流程...2,如果超过等待时间之后,还是没收到容器退出消息,那么docker 将使用docker kill方式试图终止容器。...一般情况下,父进程应该立即调用 wait(), 以防僵尸进程时间过长。 如果父进程在子进程之前退出,子进程会变成孤儿进程, 它父进程会变成 PID 1。...因此,init 进程就要对这些进程负责,并在适当时候调用 wait() 方法。 但是,通常情况下,大部分进程不会处理偶然依附在自己进程上随机子进程,所以在容器中,会出现许多僵尸进程。...解决容器进程收不到 SIGTERM 信号 通过上面的解释应该能明白,我们不能正常退出,或者等 10s 才能退出主要原因就是 PID 1 进程不能处理/处理 SIGTERM 信号造成,知道问题所在了

6.7K82

SIGSEGV:Linux 容器中分段错误(退出代码 139)

SIGSEGV 由以下代码表示: 在 Unix/Linux 中,SIGSEGV 是操作系统信号 11 在 Docker 容器中,当 Docker 容器由于 SIGSEGV 错误而终止时,它会抛出退出码...退出码 139 和 134 与 Docker 容器中 SIGSEGV 和 SIGABRT 并行: Docker 退出码 139:表示容器由于内存冲突而收到底层操作系统 SIGSEGV Docker...二进制文件和库之间兼容:如果进程运行二进制文件与共享库兼容,则可能导致分段错误。例如,如果开发人员更新了库,更改了其二进制接口,但没有更新版本号,则可能会针对较新版本加载较旧二进制文件。...当 Docker 容器被 SIGSEGV 信号终止时,它会抛出退出码 139。...这可以表明: 容器上运行其中一个库中应用程序代码存在问题; 容器上运行不同库之间兼容; 这些库与主机上硬件兼容; 主机内存管理系统或内存配置错误问题。

7K10

Doker容器

容器是Docker 三大核心概念之一,使应用程序运行基础环境,下面我们就来具体讲解一下Docker容器。...注1:可以使用 docker container wait container命令来等待容器退出和查看退出返回结果 注2:某些情况下,执行 run 命令是无法正常运行,导致容器直接退出,这个时候我们可以查看推出错误代码...三、停止容器 暂停容器 暂停容器一般情况下会用于容器中应用出现故障情况下,这时可以使用 pause 命令,语法如下: docker [container] pause 例如暂停刚才创建ubuntu16.04...exec 该命令是docker最新支持命令,因为 attach 命令在多窗口情况下会出现所有窗口同步显示,当某个窗口阻塞时,其他窗口无法使用,因此 exec 命令出现了。...:输出全部统计系信息; -format:格式化信息输出; -no-stream:持续输出; -no-trunc:截断输出信息。

73710

Docker之容器操作

某些时候,执行 docker [container] run时候因为命令无法正常执行容器会出错直接退出, 此时可以查看退出 错误代码 。...默认情况下,常见错误代码包括 : 125 : Docker daemon 执行出错,例如指定了不支持 Docker 命令参数; 126 :所指定命令无法执行,例如权限出错 ; 127 : 容器内命令无法找到...命令执行后出错,会默认返回命令退出错误码 。 4.守护态运行 更多时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行。 此时,可以通过添加-d 参数来实现。...默认情况下docker rm 命令只能删除已经处于终止或退出状态容器,并不能删除还处于运行状态容器 。...: 截断输出信息 。

49010

Docker 上安装、启动 MySQL (图解)「建议收藏」

可用 mysql –help | grep Distrib 查看 mysql 版本信息 ( mysql –help 查看帮助信息,并在结果集中 查找 Distrib , “|”单竖线表示命令连续执行...退出 当前交互窗口:exit 。此操作会关闭 mysql 服务 。 (对于创建bush 容器,exit 退出后,容器也会退出。...这是因为对Docker 来说,容器中应用退出了,容器也就没有必要继续运行了。)...查看运行容器: docker ps (可加参数 -a 表示所有,如果不加这个参数只会展示运行状态容器, 按容器即服务思想,某种程度上可以把容器也当作服务,) 这样 mysql 就已安装并成功启动...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

3.1K10

Docker 系列三(容器管理).

一、运行容器     1、基于镜像新建一个容器并启动 docker run -it --rm -d -p 8888:8080 tomcat:8.0 -i:交互式操作 -t:终端 -rm:容器退出后随之将其删除...指明了 -d 运行镜像,会返回容器 id;如果指明 -d 运行镜像,会打印出 catalina.out 日志,在 [crtl +c] 后,容器即停止运行。    ...并在只读镜像层外面挂载一层可读写层 -- 从宿主主机配置网桥接口中桥接一个虚拟接口到容器中去 -- 从地址池配置一个 ip 地址给容器 -- 执行用户指定应用程序 -- 执行完毕后容器被终止检查本地是否存在指定镜像...3、进入容器 docker exec -it [CONTAINER ID] bash ?     进入容器后输入 exit 或者 [crtl + c] 即可退出容器。...三、终止容器     1、直接删除容器 #删除终止状态容器 docker rm [CONTAINER ID] #删除所有处于终止状态容器 docker container prune #删除运行容器

50230

CentOS 7 安装 Docker

这是推荐方法。 某些用户下载RPM软件包并手动安装并手动管理升级。 这在诸如在没有访问互联网空隙系统上安装Docker情况下是有用。...sudo docker run hello-world 此命令下载hello-world镜像并在容器中运行它。 当容器运行时,它打印一条信息消息并退出。 ? Docker CE已安装并运行。...sudo docker run hello-world 此命令下载hello-world镜像像并在容器中运行它。 当容器运行时,它打印一条信息消息并退出Docker CE已安装并运行。...脚本源代码位于docker-install存储库中。 建议在生产环境中使用这些脚本,您应该在使用这些脚本之前了解潜在风险: 脚本需要root或sudo权限才能运行。...消息显示,非root用户默认情况下无法运行Docker命令。 使用方便脚本后升级 如果您使用便捷脚本安装Docker,则应直接使用您程序包管理器升级Docker

2K30

Docker入门与实践:操作容器方法详细介绍

1.1 启动Docker容器执行任务后并退出 比如,我们可以在本地通过ubuntu:16.04容器bash终端输出Hello, Xiaoliang!...; (3)分配一个文件系统,并在只读本地docker镜像层外部挂载一个可读写层; (4)从宿主机配置网桥接口中桥接一个虚拟接口到docker容器内; (5)从地址池配置一个ip地址给docker容器...; (6)执行相应应用程序,执行完后终止容器。...如下图所示,给出一个例子: (1)使用docker run -dit ubuntu:16.04命令以后台方式打开一个docker容器,并为Docker容器分配一个伪终端和保持标准输入状态; (2)实际情况下有多个后台运行容器时...可以通过输入exit退出容器,此操作并不停止容器。

59830

Linux 进程后台运行几种方式(screen)

Ctrl+z/bg/nohup/setsid/& 在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了: ....如果我们要在退出shell时候继续运行进程,则需要使用nohup忽略hangup信号,或者setsid将将父进程设为init进程(进程号为1):对于已经在前台执行命令,也可以重新放到后台执行,首先按...上面的试验演示了使用nohup/setsid加上&使进程在后台运行,同时不受当前shell退出影响。那么对于已经在后台运行进程,该怎么办呢?...GNU Screen是一款由GNU计划开发用于命令行终端切换自由软件。用户可以通过该软件同时连接多个本地或远程命令行会话,并在其间自由切换,可以看作是窗口管理器命令行界面版本。.../rsync.sh screen创建一个执行脚本单窗口会话,可以attach进程ID # screen -wipe 检查目前所有的screen作业,并删除已经无法使用screen作业 正常情况下,当你退出一个窗口中最后一个程序

3.8K00

容器和 Kubernetes 中退出码完整指南

以下是容器使用最常见退出码: 退出码名称含义0正常退出开发者用来表明容器是正常退出1应用错误容器因应用程序错误或镜像规范中错误引用而停止125容器未能运行docker run 命令没有执行成功126...以下是可能发生这种情况常见原因: 命令中使用了未定义 flag,例如 docker run --abcd; 镜像中用户定义命令在本机权限不足; 容器引擎与宿主机操作系统或硬件兼容。...检查容器日志,查看无法调用哪个命令; 尝试在没有命令情况下运行容器以确保隔离问题; 对命令进行故障排除以确保您使用正确语法,并且所有依赖项都可用; 更正容器规范并重试运行容器。...在这种情况下docker inspect 命令将指示 OOMKilled 错误。 如果容器以退出码 137 终止怎么办?...SIGSEGV 错误有三个常见原因: 编码错误:容器进程没有正确初始化,或者它试图通过指向先前释放内存指针来访问内存 二进制文件和库之间兼容:容器进程运行二进制文件与共享库兼容,因此可能会尝试访问不适当内存地址

4.4K20

Kubernetes 中容器退出状态码参考指南

Docker 为例 —— 在任何给定时间,Docker 容器都会处于以下几种状态之一: Created:Docker 容器已创建但尚未启动(这是运行 docker create 后但实际运行容器之前状态...以下是可能发生这种情况常见原因: 命令中使用了未定义 flag,例如 docker run --abcd; 镜像中用户定义命令在本机权限不足; 容器引擎与宿主机操作系统或硬件兼容。...检查容器日志,查看无法调用哪个命令; 尝试在没有命令情况下运行容器以确保隔离问题; 对命令进行故障排除以确保您使用正确语法,并且所有依赖项都可用; 更正容器规范并重试运行容器。...在这种情况下docker inspect 命令将指示 OOMKilled 错误。 如果容器以退出码 137 终止怎么办?...SIGSEGV 错误有三个常见原因: 编码错误:容器进程没有正确初始化,或者它试图通过指向先前释放内存指针来访问内存 二进制文件和库之间兼容:容器进程运行二进制文件与共享库兼容,因此可能会尝试访问不适当内存地址

19110

使用Docker容器

介绍 Docker是一种流行容器化工具,用于为软件应用程序提供包含运行所需内容文件系统。使用Docker容器可确保软件行为方式相同,无论其部署位置如何,因为其运行时环境无情一致。...映像通常以根文件系统开头,并在有序只读层中添加文件系统更改及其相应执行参数。与典型Linux发行版不同,Docker映像通常只包含运行应用程序所必需基本要素。图像没有状态,也不会改变。...当对正在运行容器中现有文件进行更改时,该文件将从只读空间复制到读写层中,并在其中应用更改。读写层中版本隐藏原始文件但不删除它。读写层中更改仅存在于单个容器实例中。...exit Docker容器在它们发出命令完成后立即停止运行,因此当我们退出bash shell时,我们容器停止了。如果我们运行docker ps,显示正在运行容器命令,我们将看不到我们。...在这种情况下,11cc47339ee1是容器ID,small_sinoussi是随机生成名称。

1.2K40

【15】进大厂必须掌握面试题-容器化和虚拟化面试

Docker映像是Docker容器来源。换句话说,Docker映像用于创建容器。图像是使用build命令创建,开始运行时它们会产生一个容器。...我建议您遵循以下格式: Docker容器包括应用程序及其所有依赖项,但与其他容器共享内核,并在主机操作系统上用户空间中作为隔离进程运行。...可以通过创建Docker映像然后运行它来创建Docker容器,也可以使用Dockerhub上存在Docker映像。 Docker容器基本上是Docker映像运行时实例。 Q6。...如果您以前没有使用过Docker实践经验,也没有使用过类似领域其他工具经验,请诚实并进行相同解释。在这种情况下,就功能而言,是否可以将其他工具与Docker进行比较是有意义。 Q12。...Docker容器退出时是否会丢失数据? 您可以这样说:,当Dcoker容器退出时,不会丢失数据。应用程序写入磁盘所有数据都会保留在其容器中,直到您明确删除该容器为止。

1.2K20

SIGTERM:Linux 容器优雅终止(退出代码 143)

如果过程不在 Docker 容器中,通过 SIGTERM 信号终止容器在其日志中显示退出码 143。...退出码 143 和 137 与 Docker 容器中 SIGTERM 和 SIGKILL 一一对应: Docker 退出码 143 – 表示容器收到底层操作系统 SIGTERM Docker 退出码...默认情况下,kill 命令会向进程发送 SIGTERM 信号。 如需找到 [ID](进程 ID),请使用命令 ps -aux,它会列出所有正在运行进程。...实际上,这意味着需要确保您应用程序处理 SIGTERM 信号并在收到信号时执行有序关闭过程。这应该包括完成事务、保存临时数据、关闭网络连接和清理不需要数据。...处理优雅终止另一个选项是 preStop hook,允许您在更改应用程序代码情况下执行关闭过程。

10.2K20
领券