2、使用-p可以指定要映射到的本地端口。
Local_Port:Container_Port,任意地址的指定端口
Local_IP:Local_Port:Container_Port 映射到指定地址的指定端口
Local_IP::Container_Port 映射到指定地址,但是宿主机端口是随机分配的
3、指定传输协议:TCP
docker端口映射详解
一、端口映射概述:
在Docker中容器默认是无法与外部通信的,需要在启动命令中加入对应的参数才允许容器与外界通信。
当Docker中运行一个Web服务时,需要把容器内的Web服务应用程序端口映射到本地宿主机的端口。这样,用户访问宿主机指定的端口的话,就相当于访问容器内部的Web服务端口。
二、案例实验:
1、-P选项,随机端口
使
用-P选项时Docker会随机映射一个端口至容器内部的开放端口
[root@docker ~]# docker run -d -P --name nginx-test1 nginx
使用docker port可以查看端口映射情况
[root@docker ~]# docker port nginx-test1
访问测试:192.168.100.131:32768
[root@docker ~]# docker logs nginx-test1
查看映射的随机端口范围
[root@docker ~]#
cat /proc/sys/net/ipv4/ip_local_port_range
2、使用-p可以指定要映射到的本地端口。
Local_Port:Container_Port,任意地址的指定端口
端口映射参数中指定了宿主机的8000映射到容器内部的80端口,可以多次使用-p选项
[root@docker ~]# docker run -d -p 8000:80 --name nginx-test2 nginx
访问测试:192.168.100.131:8000
这种方式会映射到所有接口地址,所有访客都可以通过宿主机所有IP的端口来访问容器。
如下:查看宿主机当前的ip地址
访问测试:192.168.59.153:8000
Local_IP:Local_Port:Container_Port
映射到指定地址的指定端口
[root@docker ~]# docker run -d -p
192.168.100.131:9000:80 --name nginx-test3 nginx
访问测试:192.168.100.131:9000
访问测试:192.168.59.153:9000
Local_IP::Container_Port
映射到指定地址,但是宿主机端口是随机分配的
[root@docker ~]# docker run -d -p 192.168.100.131::80 --name nginx-test4 nginx
[root@docker ~]# docker port nginx-test4
访问测试:192.168.100.131:32770
3、指定传输协议:TCP
[root@docker ~]# docker run -d -p 80:80/tcp --name nginx-test5 nginx
[root@docker ~]# docker port nginx-test5
访问测试:192.168.100.131:80
Docker
端口映射
即映射
容器
内应用的服务
端口
到本机宿主机器。
当
容器
中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数两种方式来
指定
端口映射
。
1.
随机
映射
使用 -P 参数时,
Docker
会
随机
映射一个
端口
到内部
容器
开放的网络
端口
,如下开启一个 nginx 服务:
$
docker
run -d -P nginx
e93349d539119dc48dc841e117f6388d6afa6a6065b75a5b4aedaf5fb2a051fc
$
docker
ps
CONTAINER ID IMAGE COMMAN
在启动
容器
时,如果不配置宿主机器与虚拟机的
端口映射
,外部程序是无法访问虚拟机的,因为没有
端口
。
docker
指令:
docker
run -p
ip
:hostPort:containerPort redis
参数讲解:
使用-p参数会分配宿主机的
端口映射
到虚拟机。
IP
表示主机...
文章目录前言一、
docker
基础命令二、
docker
镜像命令1、
docker
images:列出本地主机的镜像2、
docker
search :查看镜像3、
docker
pull:拉取镜像4、
docker
rmi : 删除
docker
镜像三、
docker
容器
命令1、环境准备2、运行
容器
3、启动、停止、重启
容器
4、查看
容器
日志5、进入
容器
四、
容器
端口映射
1、tomcat
端口映射
案例五、
Docker
容器
与宿主服务器文件复制
当看到此篇文章时,你应该已经搭建好了
docker
环境了吧?如果没有,请移步另一
一.
docker
file准备
有时多个
容器
之间需要互相访问到对方的服务,
docker
除了通过网络访问之外,还提供了两个功能来满足服务访问的基本需求:1.允许映射
容器
内应用的服务
端口
到本地宿主主机;2.互联机制实现多个
容器
间通过
容器
名来快速访问。
docker
file如下所示:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtim...
问题描述:
在执行
docker
run -p 19918:19918/tcp -v /etc/localtime:/etc/localtime时候后
docker
ps查看有启动19918和另一个
端口
,并在注册中心未发现执行程序。
问题分析:
启动的另一
端口
为之前配置的,猜测为run时执行了刚刚build的项目外执行了之前的
容器
。
解决方式:
docker
images查看
容器
,删除相同的以及两个执行出的
端口
容器
。再次执行显示成功!
命名规范,及时清除不必要的
容器
。
补充知识:
docker
中开启时运行多个不同进程,安装ssh,并在启动
docker
时与jenkins同时启动运行
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
端口
docker
run命令用于运行一个新
容器
。它支持多个参数来提供所需的信息。其中一些参数包括:
- `-d`:在后台运行
容器
。
- `-i`:交互式
容器
,允许用户与
容器
进行交互。
- `-t`:为
容器
分配一个伪终端。
- `--name`:为
容器
指定
一个名称。
- `--network`:将
容器
连接到
指定
的网络。
- `-p`:将
容器
的
端口映射
到主机的
端口
。
- `-v`:将主机的目录或文件挂载到
容器
内部。
交互型
容器
运行在前台,可以在
容器
内部使用exit命令或调用
docker
stop、
docker
kill命令来停止
容器
。而后台型
容器
运行在后台,与终端无关,只有通过
docker
stop、
docker
kill命令才能停止
容器
。