前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker network (docker 网络的组建) 转

docker network (docker 网络的组建) 转

作者头像
yawn
发布2019-08-24 19:10:49
2.3K0
发布2019-08-24 19:10:49
举报

“docker 网络的组建” 就是需要解决docker容器之间的网络访问以及其他主机访问docker容器的问题。根据实践验证,具体列举以下方法:

1 映射主机端口

映射主机端口,也就是将docker容器提供服务的端口映射到主机的某一个端口,消费者直接访问主机即可。

代码语言:javascript
复制
docker run --name docker-nginx 
-d 
-p 8080:80 
-v /root/service/nginx/nginx.conf:/etc/nginx/nginx.conf 
-v /root/service/nginx/conf.d:/etc/nginx/conf.d 
-v /root/service/nginx/html:/usr/share/nginx/html 
nginx

使用以上命令运行容器的时候,将容器docker-nginx的80端口映射到了主机的8080端口,其中 -p 8080:80 就是指定端口的映射关系。 消费者可以直接访问主机的8080端口,此外,还必须开启主机防火墙的8080端口。(防火墙的设置方法在上篇文章已经介绍到了)

然而,在Docker Hub的大多常用的镜像实例说明中,基本都不会使用这种方式来运行一个容器,因为在公网中,多开一个端口,就意味着主机在网络世界中多了一个弱点。我主机上的服务就因为防火墙未关闭端口被攻击过。所以,使用docker network组建容器之间的网络是很有必要的。

2 docker network 组建容器之间的网络

在docker中,docker network 是主要是用做容器之间的通信,即组建容器之间的局域网。其实使用 -link 可以实现容器之间简单的网络,但是容器较多而且通信关系较为复杂时,使用network就更又条理。

docker network 即在容器之间组建一个局域网,然后各个容器可以加入这个网络,之后容器之间的访问就如同局域网中主机之间的访问。

创建一个network

代码语言:javascript
复制
docker network create docker-network  // docker-network是局域网的名字,自定义 
docker network ls  // 查看已有的network

将容器连接到network

代码语言:javascript
复制
// 运行新的容器,并加入到docker-network网络中
// --network 表示这个容器要连接到的网络
// --network-alias 表示这个容器在此网络中的名称,也可以使用--ip来指定容器的ip
docker run --name docker-nginx -d 
--network docker-network 
--network-alias nginx-network nginx

// 已经在运行的容器加入网络使用以下命令
// docker network connect [OPTIONS] NETWORK CONTAINER
docker network connect --alias nginx-network docker-network docker-nginx
docker network connect --alias wp-network docker-network docker-wordpress

容器之间的访问

经过以上命令,我们已经创建了一个名为 docker-network 的网络,并且有两个容器加入了这个网络,在网络中的名称分别为:nginx-network 和 wp-network。现在需要使用 nginx 作为反向代理来访问 wordpress(wp-network),可直接修改 nginx 的配置文件,设置代理的主机地址为 wp-network 即可,( wp-network 为容器在network中的名称)如下:

代码语言:javascript
复制
location / {
    proxy_pass http://wp-network:80/;
}
// 注意:这里的80端口为wordpress镜像暴露的端口,(即DockerFile中expose的端口),
// 并不是映射到主机的端口。(其实也没必要映射端口了)

至此,docker网络的组建以及容器之间访问的问题已经解决了。

本文转载自:jvm123-java技术分享站 

原文链接:http://jvm123.com/2019/07/docker-network/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 映射主机端口
  • 2 docker network 组建容器之间的网络
    • 创建一个network
      • 将容器连接到network
        • 容器之间的访问
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档