Docker学习七:网络基础

       Docker支持映射容器端口到宿主机和容器互联机制来为容器提供网络服务。


一、端口映射

       1、外部访问容器应用。使用-P和-p参数来指定端口映射。当使用-P标记时,Docker会随机映射一个49000 ~ 49900的端口至容器内部开放的网络端口。

[root@localhost /]# docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
c38f487f9a534b539129a6a8c1791839491708d7dd7f0048d1d3f60c449ce65e
       可以使用docker ps查看容器映射关系。

[root@localhost /]# docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
c38f487f9a53        registry            "/entrypoint.sh /etc/"   2 hours ago         Up 2 hours          0.0.0.0:5000->5000/tcp   berserk_khorana
       可以通过docker logs命令来查看应用信息。

[root@localhost /]# docker logs -f berserk_khorana
time="2017-10-30T05:48:08Z" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.7.6 instance.id=7ea175ab-5bc0-42da-b4e2-8444d684ba64 version=v2.6.2 
time="2017-10-30T05:48:08Z" level=info msg="redis not configured" go.version=go1.7.6 instance.id=7ea175ab-5bc0-42da-b4e2-8444d684ba64 version=v2.6.2


       2、映射所有接口地址。使用hostPort:containerPort格式将本地的5000端口映射到容器的5000端口,可以多次使用-p来映射多个端口。

[root@localhost /]# docker run -d -p 5000:5000 -p 4000:8080 registry

       3、映射到指定地址的指定端口。

[root@localhost /]# docker run -d -p 127.0.0.1:5000:5000 -p 4000:8080 registry

       4、映射到指定地址的任意端口。

[root@localhost /]# docker run -d -p 127.0.0.1::5000 -p 4000:8080 registry


       5、查看映射的端口信息。

[root@localhost /]# docker port berserk_khorana 5000
0.0.0.0:5000


二、容器互联通信

       1、自定义容器名。在执行docker run 的时候用--name为容器自定义名称,可以同时使用--rm标记,则容器终止后会自动删除,但是--rm和-d参数不能同时使用。

[root@localhost /]# docker run --rm -it -p 58080:8080 --name bvrfis centos:7 /root/run.sh


       2、容器互联。使用--link参数可以实现容器间的互联。

       创建新的数据容器:

[root@localhost /]# docker run -d --name db mysql:5
       新建web容器,并将它连接到db容器:

[root@localhost /]# docker run -d -P --name web --link db:db tomcat:7 /bin/bash
       此时db和web容器建立互联关系。--link参数的格式为--link name:alias,其中name是要连接的容器名称,alias是这个连接的别名。

       Docker为2个容器建立了一个安全隧道,而且不需要映射他们的端口到宿主机上,也不用在启动的时候用-p和-P来标记端口,避免暴露数据库端口到外部网络上。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值