Docker 实现容器端口绑定本地端口
今天遇到启动镜像之后,通过HTTP请求的的方式访问不了的一个小问题,下面来记录并分享下解决办法:
常用的docker启动命令和解决办法如下所示:
一、启动docker
众所周知,启动容器的命令如下:
docker run 镜像名称
二、绑定容器端口与本地端口
由于启动容器之后,本地无法直接访问容器内的端口,故而需要将本地的端口与容器的端口做一个绑定操作,从而可以通过本地端口去访问容器,设置如下:
docker run -p 本地端口:容器端口 镜像名称
然后就可以通过本地的浏览器通过本地的端口访问容器了。
三、容器在后台运行,加-d参数,命令如下:
docker run -d -p 本地端口:容器端口 镜像名称
四、查看镜像列表,命令如下
docker image ls 或 docker images
五、查看正在运行的容器,命令如下
docker ps
补充:docker 给运行的容器映射本地端口
1.提交运行中的容器为一个镜像 (这样不会丢失在容器的各种操作)
docker commit tang tang1 ### tang(运行容器名称) tang1(生成镜像名称)
2.运行镜像并添加端口
docker run -d -it -p 8000:80 tang1:latest /bin/bash ### 小p是自定义端口 latest 是镜像的标签(最好写上专业点)
补充:docker加载volume并绑定端口
要求
已获取docker image,现在想要创建container,加载本地目录到container目录,还有映射本地和container之间的端口。
具体举例如下:
image ID: 884e0fc83dfe
设置container name: test
将本地的9000端口映射到container的80端口
加载数据卷volume:将本地的~/Desktop/test 映射到container的/test目录
实现
docker run -it --name test -v ~/Desktop/test:/test -p 9000:80 884e0fc83dfe /bin/bash # 进入新建container docker start test docker attach test
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
Docker多个容器不能有相同端口号的处理方案
问题背景 在docker里用同一份镜像创建4个容器,网络选择bridge模式,A服务在四个容器中都使用了同一个端口号(6000):为了减少对外暴露的端口数,另外使用了nginx对这4个服务实例做代理,4个服务实例分属4个upstream,使用了类似/service1./service2的路径来访问4个实例. 此时从本地访问任一服务,则会报502错误,百思不得其解. connect() failed (111: Connection refused) while connecting to ups
-
完美解决Windows10下无法对docker容器进行端口访问的操作
解决Windows10下无法对docker容器进行端口访问(端口映射的问题) 在Windows10系统服务器中安装了docker和docker-compose 并尝试在其中运行Nginx服务,映射也做好 问题:在主机的浏览器中,打开localhost:port无法访问对应的Web服务. 问题解析 原因:docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker. 也就是说,服务中使用的loca
-
Docker动态给容器Container暴露端口操作
查看Container的IP地址 docker inspect <container name or id>| grep IPAddress 查看Container的映射的端口 docker port <container name or id> eg. docker port d8dac7399647 docker port hfq-jedi-zxf-eden 用iptables查看容器映射情况 iptables -t nat -nvL iptables -t nat -nvL
-
运行中的docker容器端口映射如何修改详解
前言 在docker run创建并运行容器的时候,可以通过-p指定端口映射规则.但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改.当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射规则.那么这种情况我们该怎么处理呢?今天Docker君教你如何修改运行中的docker容器的端口映射? 方法一:删除原有容器,重新建新容器 这个解决方案最为简单,把原来的容器删掉,重新建一个.当然这次不要忘记加上端口映射. 优缺点:优点是简单快捷,在测试环境使用较多.缺
-
Docker 通过端口来连接一个容器的实现
Docker容器的连接 1.网络端口映射 我们创建一个python应用的容器 # docker run -d -P training/webapp python app.py 我们使用 -P 参数创建一个容器,使用 docker ps 来看到端口5000绑定主机端口32768 我们也可以使用 -p 标识来指定容器端口绑定到主机端口. 两种方式的区别是: -P :是容器内部端口随机映射到主机的高端口. -p : 是容器内部端口绑定到指定的主机端口. ------------------------
-
docker容器无法访问宿主机端口的解决
最近在工作时遇到一个问题,docker容器无法访问宿主机的redis,telent6379端口不通. 经排查发现,该服务器启用了防火墙,防火墙把6379的端口的访问授权给docker0网卡访问即可. 操作如下: firewall-cmd --permanent --zone=trusted --change-interface=docker0 firewall-cmd --reload 补充知识:docker 启动mysql 容器出错Ports are not available: listen
-
Docker 动态修改容器端口映射的方法
前言:Docker端口映射往往是Docker Run命令时通过-p将容器内部端口映射到宿主机的指定端口上,一般来说容器的端口所对应的端口是提前确定需要映射的.但是有些情况下不得不需要临时映射端口,例如Docker中运行着MySQL容器,默认端口是不开放的.那么有什么办法可以让运行中的容器暴露指定的端口呢?客官请往下看---> 方法一:更改Docker配置文件(有风险) 通过修改Docker的配置文件来达到我们的目的,一般来说需要修改以下的文件config.v2.json和hostconfig.j
-
Docker 实现容器端口绑定本地端口
今天遇到启动镜像之后,通过HTTP请求的的方式访问不了的一个小问题,下面来记录并分享下解决办法: 常用的docker启动命令和解决办法如下所示: 一.启动docker 众所周知,启动容器的命令如下: docker run 镜像名称 二.绑定容器端口与本地端口 由于启动容器之后,本地无法直接访问容器内的端口,故而需要将本地的端口与容器的端口做一个绑定操作,从而可以通过本地端口去访问容器,设置如下: docker run -p 本地端口:容器端口 镜像名称 然后就可以通过本地的浏览器通过本地的端口访
-
SSH端口转发,本地端口转发,远程端口转发,动态端口转发详解
第一部分 SSH端口转发概述 当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我们带来什么好处吧! SSH端口转发概述 让我们先来了解一下端口转发的概念吧.我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发. 它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自
-
Docker 网络之端口绑定的方法
外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射. -P 标记时 Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口. -p 标记时 则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器.支持的格式有 ip:hostPort:containerPort ip::containerPort hostPort:containerPort 映射所有接口地址 使用 hostPort:conta
-
对已有的docker容器增加新的端口映射问题(两种方式)
一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 docker run -it -d --name [container-name] -p 8088:80 [image-name] 这里是将容器内的80端口到宿主机的8088端口 在运行容器时指定映射端口运行后,如果想要添加新的端口映射,可以使用以下两种方式: 方式一:将现有的容器打包成镜像,然后在使用新的镜像运行容器时重新指定要映射的端口 #1.停止现有容器 d
-
docker容器启动后添加端口映射
概要 网上有许多人在查找关于容器启动后能否进行端口映射的问题.我曾经也问过度娘,很遗憾我没找到.本文就这个问题给出一个解决方法,旨在抛砖引玉.本文的思路是使用iptables的端口转发,这也是docker端口映射内部的实现机制,只不过我是显示地写出来罢了,为的就是让查找这个问题的人对docker的端口映射有一个直观的了解. 结论:容器启动后是可以添加端口映射的,但不建议手工添加,最好使用docker提供的功能. 步骤 创建两个容器并进行了端口映射,结果如图所示: 假如,我start一个容器,其内
-
docker容器的四种端口映射演示分析
端口映射 把容器的端口映射为宿主机的一个随机或者特定端口,使用外部用户可以访问容器服务 端口映射本是在容器底层做了 iptables 地址转发,出去的流量做 SNAT 源地址转发,进来的流量做 DNAT 目标地址转发. 四种端口映射 随机端口映射:就是把容器的端口随机映射为宿主机的一个端口. 指定端口映射:就是把容器的端口映射为宿主机的指定端口. 指定网卡随机端口映射:就是把容器的端口映射为宿主机的指定网卡的随机端口. 指定网卡端口映射:就是把容器的端口映射为宿主机的指定网卡的指定端口. 端口映
-
详解Docker修改容器端口映射的方法
直接解决方法 具体可参考Stack Overflow链接 docker运行时存在守护程序,所以我们需要停止docker内运行的容器和docker服务.具体可参考官网给出的守护程序解释 docker stop 容器id //CentOS下停止docker服务(Ubuntu类似) sudo systemctl stop docker 使用以下命令找到已创建容器的hostconfig.json和config.v2.json配置文件. find / -name hostconfig.json //或co
-
docker修改容器的端口、容器名、映射地址以及注意事项
目录 1.docker修改容器名 2.docker修改修改端口.映射地址… 2.1.先找容器的ID 2.2.停止docker容器 2.3.停止docker 2.4.查找配置文件 2.5.备份原有文件,如果出现问题后可以还原回去 2.6.修改配置文件(hostconfig.json) 2.6.修改配置文件(config.v2.json) 2.7.启动docker服务 2.8.查看端口是否修改 2.9.启动docker容器 注意!!! 补充:如何利用docker给容器改名呢 总结 1.docker修
-
docker部署golang http服务时端口无法访问的问题解决
目录 1.背景 1.1 问题描述 1.2 webserver代码 3.Dockerfile文件 2.问题分析 3.解决方案 需要使用docker将golang的httpserver容器化.在这个过程中遇到了一个低级问题,golang http服务时端口无法访问,特此记录解决这个问题的过程. 1.背景 1.1 问题描述 问题描述: docker镜像启动成果之后,通过curl不能访问: [root@hecs-205828 ~]# curl -XGET http://127.0.0.1:8360/he
-
如何在centos的docker里安装jupyter并开放端口
目录 安装 jupyter docker 端口映射 安装 jupyter pip install jupyter 编写脚本运行: #!/bin/bash # run_jupyter.sh jupyter notebook --no-browser --ip 0.0.0.0 --port 8888 --allow-root > .log 2>&1 & 可以把这个脚本加入开机运行 docker 端口映射 先把安装好jupyter的容器提交 docker commit -a '作者'
随机推荐
- JavaScript校验Number(4,1)格式的数字实例代码
- 正则表达式的使用 ASP
- java web实现自动登录功能
- 讲解Java编程中finally语句的基本使用方法
- iOS 对当前webView进行截屏的方法
- Visual Studio ASP.NET Core MVC入门教程第一篇
- dedecms模版制作使用方法
- 无JS,完全php面向过程数据分页实现代码
- Python socket.error: [Errno 98] Address already in use的原因和解决方法
- Docker容器 日志中文乱码问题解决办法
- 详解WordPress开发中get_header()获取头部函数的用法
- String与string的区别(注意大小写)
- IIS7与IIS6之功能比较
- Spring 实现excel及pdf导出表格示例
- 探讨数组与字符串输入的问题(C++版)
- 使用递归实现数组求和示例分享
- Android如何创建桌面快捷方式
- iOS11 WKWebView问题汇总
- Scala的文件读写操作与正则表达式
- Java数组的定义、初始化、及二维数组用法分析