当容器中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数两种方式来指定端口映射。
如果你是用的docker-compose.yml 启动服务的,docker-compose.yml文件中需要配置服务对应的端口号,配置如下:
vm-test:
# 代码在git上的仓库地址
image: registry****
container_name: vm-test
ports:
#UDP 端口映射
- 1162:1162/udp
#TCP 端口映射
- 1162:1162
如果你是直接通过docker命令配置的:
#TCP的端口映射
docker run -itd -p 1162:1162 vm_test
docker run -itd -p 127.0.0.1:1162:1162 vm_test
#UDP的端口映射
docker run -itd -p 1162:1162/udp vm_test
以上两种都可以映射成功,亲测有效,如有问题,欢迎指正!
实现效果:
如果你是用的docker-compose.yml 启动服务的,docker-compose.yml文件中需要配置服务对应的端口号,配置如下:vm-test: # 代码在git上的仓库地址 image: registry**** container_name: vm-test ports: #UDP 端口映射 - 1162:1162/udp #TCP 端口映射 - 1162:1162 如果你是直接通过docke.
1.开启TCP管理端口
1.1. 创建目录/etc/systemd/system/docker.service.d
1.2. 在这个目录下创建tcp.conf文件,增加以下内容,
Ubuntu专用版
Ubuntu和CentOS7 通用版
1.3. Daemon重新reload ,并重启docker
1.4. 查看端口是否打开...
docker端口含义(docker容器端口映射、容器内部端口)(port/tcp、0.0.0.0:port1->port2/tcp、:::port1->port2/tcp)
docker容器的IP信息
下面面这一段这就是docker 的网络,我们可以看到它的网段是172.17.0.0段的。
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:b6:4b:f0:16 brd ff:ff:ff:ff:ff:ff
inet 172.17.0
基本遵循规则是从宿主机映射到容器,默认是tcp,如果使用udp,比如5600,要记得在运行时或者yaml文件端口处比如写:5000/udp
docker-compose映射端口的标签。使用HOST:CONTAINER格式或者只是指定容器的端口,宿主机会随机映射端口。
ports:
- "3000"
- "8000:8000"
- "49100:22"
- "127.0.0....
可以使用 -p 或 --publish 选项在运行
容器时为
容器开放
端口。格式为 -p host_port:container_port/protocol。
例如, 为了开放
UDP协议下的
端口80,可以运行如下命令
docker run -d -p 80:80/
udp your_image
这样的话
容器内的80
端口将会
映射到主机的80
端口,并使用
UDP协议。
docker启动
容器时会指定访问
端口,可以通过多个-p指定多个
端口映射。
udp在后台会有一个自己的
端口号,区别于服务访问的
端口号,这时就需要启动服务时候来指定一下了。
docker run -p 8080:8090 -p 10000:11000/
udp aaa:latest
8080是服务本身暴露的
端口号,8090是服务本身
端口号。10000是
udp暴露的
端口号 11000为
udp本身监听的
端口,如果是
udp要注意要声明。
补充知识:
docker 容器中的项目监听
udp 无法收到消息
在我们生成
容器并运行时,要配置对外暴露
端口,如果使用到
udp的话,还要单独指定
udp端口
Podman撰写
带有后端的
docker-compose的实现。 该项目的主要目标是能够未经修改且无根地运行
docker-compose.
yml 。 该项目旨在为
docker-compose提供
docker-compose替换,并且在某些情况下非常有用,因为:
可以无根运行
仅取决于podman和Python3和
没有守护程序,没有设置。
开发人员可以使用它来使用单个熟悉的YAML文件运行单机
容器化堆栈
对于类似生产的单机集装箱化环境,请考虑
对于真实的东西(多节点集群),请检查任何生产的OpenShift / Kubernetes发行版,例如 。
该项目仍在开发中。
从PyPI安装最新的稳定版本:
pip3 install podman-compose
通过--user可以在没有root用户的情况下安装在普通用户家中。
或来自GitHub的最新开发版本:
在启动
容器时,如果不配置宿主机器与虚拟机的
端口映射,外部程序是无法访问虚拟机的,因为没有
端口。
容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定
端口映射。
当使用 -P 标记时,
Docker 会随机
映射一个 49000~49900 的
端口到内部
容器开放的网络
端口。
端口映射通过-P和-p参数来实现
一、-P将
容器内部开放的网络
端口随机
映射到宿主机的一个
端口上;
二、-p指定要
映射的
端口,一个指定
端口上只可以绑定一个
容器;
Docker是一种容器化技术,可在其中运行现代应用程序。Docker容器本身是一种虚拟化技术,它允许用户将应用程序与依赖项捆绑在一起,并以一种轻量级的方式运行在不同的环境中。Docker容器的关键优势在于能够轻松地在不同的环境中部署应用程序,达到开发人员和运维人员的持续整合、持续部署和持续交付。
Docker Compose是一种工具,它允许用户定义和运行多个Docker容器。使用Docker Compose可以轻松地配置容器之间的网络连接和依赖关系,使得多个Docker容器能够协同工作,从而形成一个完整应用程序。
连接本地数据库时,可以使用Docker Compose配置文件定义数据库容器和应用程序容器之间的连接。在Docker Compose配置文件中,可以指定数据库容器要映射到的本地端口,以及应用程序容器如何连接到本地数据库。例如,下面是一个简单的Docker Compose配置文件,用于连接一个MySQL数据库和一个PHP应用程序:
version: '3.1'
services:
image: mysql:latest
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: example_password
build: .
ports:
- "80:80"
depends_on:
environment:
DB_HOST: db
DB_USER: root
DB_PASSWORD: example_password
在上面的Docker Compose配置文件中,我们定义了两个服务:一个MySQL数据库服务和一个PHP应用程序服务。数据库服务的镜像是MySQL的最新版。我们将其映射到本地端口3306,并设置了MySQL的root密码。PHP应用程序服务使用Dockerfile进行构建。我们将其映射到本地端口80,并指定它依赖于数据库服务。然后我们通过环境变量将应用程序容器连接到本地数据库。
总之,Docker容器和Docker Compose的使用使得我们能够轻松地集成和部署多个容器,包括本地数据库,使得整个应用程序具有高效性、可靠性和扩展性。
解决:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
Godyouer:
基于可视化 BI 工具 DataEase 制作第七次人口普查数据分析大屏
洋溢不吃香菜:
Spring报错:has been injected into other beans [xxx] in its raw version as part of a circular reference
帅帅的光哥:
基于可视化 BI 工具 DataEase 制作第七次人口普查数据分析大屏
贝小贝貝: