docker容器添加新的端口映射

通常在运行容器时,我们都会通过参数 -p来指定宿主机和容器端口的映射,例如

docker run -it -d --restart always --name [指定容器名] -p 8899:8080 [指定镜像名]

上述命令将容器内的8080端口映射到宿主机的8899端口。

参数说明
-d 表示后台运行容器
-t 为docker分配一个伪终端并绑定到容器的标准输入上
-i 是让容器的标准输入保持打开状态
-p 指定映射端口
–restart 指定容器异常停止后是否自动重启

当容器已经运行之后,且容器中已经有配置改动,不方便重新创建逐一修改配置时,则可通过两种方式新增端口映射。

一、将现有的容器打包成镜像并重新运行

如果正在运行的容器已经修改了很多配置,重新创建镜像,修改配置比较麻烦时,可在现有的容器基础上打包一个镜像。然后在运行新镜像时进行端口映射的新增或修改。

step 1. 停止指定容器:

docker stop container-name

step 2. 将容器commit成为一个镜像:

docker commit -a "作者" -m "这里是镜像的注释" [容器名称或id] [打包的镜像名称]:[版本标签]
#常用OPTIONS说明:
#    -a :提交的镜像作者
#    -c :使用Dockerfile指令来创建镜像
#    -m :提交时的说明文字
#    -p :在commit时,将容器暂停

或者使用export和import将容器导出为镜像

docker export 容器ID > 压缩包名称.tar
cat 压缩包名称.tar | docker import - 镜像名称:版本标签
#导出
$ docker export 1efca3906 > centos.tar
#导入
$ cat docker/centos.tar | docker import - test/centos:v1

注意:容器在提交之前需要先停止。如果容器正在运行,则提交操作将失败。此外,提交的容器必须是基于一个基础镜像构建的,否则提交操作也将失败。

step 3. 用新镜像运行容器:

docker run -it -d --name container-name -p 8848:8848 -p 9848:9848 new-image-name

至此,原有容器内配置不变,在启动时进行了新的端口映射。

二、修改要端口映射的容器的配置文件(推荐)

step 1. 查看容器信息:

# 查看容器列表
docker ps -a# 查看容器的端口映射情况,在容器外执行:
docker port [容器id]
# 或
docker port nginx

在这里插入图片描述
在这里插入图片描述
step 2. 查找要修改容器的容器全Id:

docker inspect [容器id或名称] | grep Id

在这里插入图片描述
step 3. 修改配置文件

进入/var/lib/docker/containers目录,找到与上述Id相同的文件夹,修改该文件夹下的 hostconfig.json 和 config.v2.json文件。

在修改之前,还需要停到容器和docker服务。

docker stop [容器id]
systemctl stop docker

修改hostconfig.json,找到key为PortBindings的配置,添加端口绑定"9848/tcp": [{“HostIp”: “”,“HostPort”: “9848”}],表示绑定端口9848:

"PortBindings":{"8848/tcp":[{"HostIp":"","HostPort":"8848"}],"9848/tcp":[{"HostIp":"","HostPort":"9848"}]}

修改config.v2.json文件,在ExposedPorts中加上要暴露的端口,即9848:

"ExposedPorts":{"8848/tcp":{},"9848/tcp":{}}

保存配置文件,重启docker服务和容器:

systemctl start docker
docker start [容器id]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/596001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【51单片机系列】LCD1602液晶模块

本文是关于液晶显示屏的相关介绍。相对于静态数码管、动态数码管、LED点阵等,LCD1602液晶显示器能够显示更多的字符数字信息,并且也是常用的一种显示装置。 文章目录 一、LCD1602介绍1.1、LCD1602简介1.2、LCD1602常用指令1.3、LCD1602使用 二、LCD1602使…

openGauss学习笔记-174 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作

文章目录 openGauss学习笔记-174 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作174.1 事务隔离说明174.2 写入和读写操作174.3 并发写入事务的潜在死锁情况 openGauss学习笔记-174 openGauss 数据库运维-备份与恢复-导入数据-管理并发写入操作 174.1 事务隔离说…

SpringBoot之项目管理

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 SpringBoot之项目管理 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、指标监控Sprin…

网络安全试题进阶——附答案

选择题 什么是CSRF攻击的全称? A. Cross-Site Request ForgeryB. Cross-Site ScriptingC. Credential Sniffing and Retrieval ForceD. Cyber Security and Risk Framework 哪种安全攻击利用用户的社交工程,诱使他们点击似乎是合法链接的恶意链接&#x…

Parallels虚拟机启动后,Mac主机无法上网怎么办

文章目录 1.问题2.解决: 1.问题 部分用户在运行Parallels Desktop的Windows 11打开后,Windows上网没有问题 ,但是Mac主机不能访问带域名的网站,而访问带ip的网站没问题,退出parallels虚拟机以后,mac网络恢…

docker 部署来自Hugging Face下机器翻译模型

机器翻译模型(Hugging Face官网) 模型翻译api服务代码 # 离线翻译服务代码 # -*-coding:utf-8-*-import os import json import logging from logging.handlers import RotatingFileHandler from datetime import datetime from flask import Flask, request,jsonify from geve…

HarmoryOS Ability页面的生命周期

接入穿山甲SDK app示例: android 数独小游戏 经典数独休闲益智 广告接入示例: Android 个人开发者如何接入广告SDK,实现app流量变现 Ability页面的生命周期 学习前端,第一步最重要的是要理解,页面启动和不同场景下的生命周期的…

内联函数的作用

目的 主要为了提升程序运行速度。 分析 当程序调用一个函数时,程序暂停执行当前指令,跳到函数体处执行,在函数执行完后,返回原来的位置继续执行。如果该函数为内联函数,则不需跳,是因为该内联函数直接插…

基于TIC6000的DSP教学实验箱操作教程:5-18 RGB24图像灰度转换(LCD显示)

一、实验目的 学习RGB24图像灰度转换的原理,掌握图像的读取方法,并实现在LCD上显示灰度转换前后的图像。 二、实验原理 RGB24图像灰度转换 RGB颜色空间作为一种常用的彩色图像表示模型,分别用红(R)、绿&#xff08…

【EEPROM EPROM RAM ROM FLASH】计算机存储家族

一:之间的区别: EEPROM、EPROM、RAM、ROM和FLASH是计算机存储器的不同类型,它们之间的主要区别在于存储数据的方式和数据保留时间。 EEPROM(Electrically Erasable Programmable Read-Only Memory)是电可擦除可编程只…

《代码整洁之道之程序员的职业素养》-专业主义

专业主义有很深的含义,它不但象征着荣誉和骄傲,而且明确意味着责任和义务担当责任,“为了按时交付软件,没测例行程序,测试例行程序需要几个小时,当时必须交付软件,因为故障修复部分都不涉及例行…

文件摆渡系统如何实现网络隔离后的数据交换、业务流转?

近年来全球网络安全威胁态势的加速严峻,使得企业对于网络安全有了前所未有的关注高度。即便没有行业性的强制要求,但在严峻的安全态势之下,企业的网络安全体系建设正从“以合规为导向”转变到“以风险为导向”,从原来的“保护安全…

鸿蒙系列--动态共享包的依赖与使用

一、前言 HarmonyOS的共享包相当于Android的Library,在HarmonyOS中,给开发者提供了两种共享包,HAR(Harmony Archive)静态共享包,和HSP(Harmony Shared Package)动态共享包 区别&…

js的btoa 和 atob之Base64编码和解码

以下内容摘录自 作者:JSON_NULL 链接:https://www.jianshu.com/p/b2c6dc5fad0a btoa 方法 btoa 是 Binary To ASCII 的简写,意思就是把二进制数据编码转换成Base64编码的ASCII字符串。且btoa(str) 方法是浏览器中的一个全局(顶级)方法。 ato…

Python从入门到网络爬虫(函数详解)

前言 函数是变成语言中最常见的语法,函数的本质就是功能的封装。使用函数可以大大提高编程效率与程序的可读性。函数是能够实现特定功能的计算机代码而已,他是一种特定的代码组结构。 函数的作用 1.提升代码的重复利用率,避免重复开发相同代…

【排序算法】删除有序数组中的重复项 II

删除有序数组中的重复项 II 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空…

js——json对象相互转化——js基础积累

js——json对象相互转化——js基础积累 需求场景解决步骤1:定义一个变量接收此字段,方便处理解决步骤2: { 外面的双引号要去掉解决步骤3:使用正则去除参数中的\\解决步骤4:如果此参数必须以{开头,以}结尾解…

一文快速了解超声功率放大器基础知识

超声功率放大器是一种电子设备,用于放大超声信号的能量。它在多个领域中发挥重要作用,包括医疗、工业、科学研究等。超声功率放大器通过将输入信号的能量放大到所需的级别,以便更好地驱动其他设备或实现特定的应用。下面就给大家介绍一下超声…

C++ 多态向上转型详解

文章目录 1 . 前言2 . 多态3 . 向上转型4 . 总结 【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485 1 . 前言 此篇博文详解C的多态向上转型平台 : Qt 2 . 多态 【Q】什么是多态? 【A】解释如下 : 通俗来说,就是多种形态,具体…