docker容器访问
Posted yanmay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker容器访问相关的知识,希望对你有一定的参考价值。
一般我们在访问容器时需要通过容器的端口来访问, 设置容器的端口映射 才可以访问
可以通过 -P 或 -p 参数来指定端口映射。
-p(小写的)则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器
docker run -p ip:hostPort:containerPort [--name] [-i] [-t] 镜像名 [COMMAND][ARG...]
ip:表示宿主机ip
hostPort:宿主机端口号
containerPort:容器端口号
支持的格式有:
1.ontainerPort,指定容器端口号,宿主机端口随机生成:
docker run -p 80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash
2.hostPort:containerPort映射主机端口和容器端口:
docker run -p 8080:80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash
3.ip::containerPort设置主机的随机端口到容器端口:
docker run -p 0.0.0.0::80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash
4.ip:hostPort:containerPort映射指定地址的指定端口到容器的指定端口
docker run -p 0.0.0.0:8080:80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash
例如:sudo docker run -d -p 5000:5000 training/webapp python app.py
当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。
使用 docker ps 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。
如:sudo docker run -d -P training/webapp python app.py
注意:
容器有自己的内部网络和 ip 地址(使用 docker inspect 可以获取所有的变量,Docker 还可以有一个可变的网络配置。)
-p 标记可以多次使用来绑定多个端口
如:sudo docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py
以上是关于docker容器访问的主要内容,如果未能解决你的问题,请参考以下文章
Docker部署Rstudio Server【三】:docker容器管理初步