docker工具之端口映射、容器互联、封装镜像、启动多个服务

1.端口映射

为什么要端口映射?
在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,
因为没有端口,所以需要进行端口映射。

端口映射的两个关键词:
端口映射有两个关键词-P -p 一个是大写一个是小写 通过run --help也可以看到
大写的P是随机映射一个49000-49900的端口到内部容器开放的网络端口。
小写的p可以指定要映射的端口,并且在一个指定端口上只可以绑定一个容器。
##过滤出所有容器的id
[root@foundation52 docker]# pwd
/tmp/docker
[root@foundation52 docker]# docker ps -aq
049e851d4838
40e24d2caceb
64a0c831be4e
ef6698f919db
##批量删除不使用的容器
[root@foundation52 docker]# docker rm -f `docker ps -aq`
049e851d4838
40e24d2caceb
64a0c831be4e
ef6698f919db
[root@foundation52 docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
## -p 指定映射端口
[root@foundation52 docker]# docker run -d --name vm1 nginx -p 8080:80 nginx
f1373ba2cfccc47e950577fcaa48271d99b482b7acad8e5e8794c6503dfe921d
[root@foundation52 docker]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                            NAMES
17e7cd21a165        nginx               "nginx -g 'daemon ..."   55 seconds ago      Up 54 seconds       0.0.0.0:8080->80/tcp             vm1
[root@foundation52 docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                            NAMES
17e7cd21a165        nginx               "nginx -g 'daemon ..."   59 seconds ago       Up 58 seconds       0.0.0.0:8080->80/tcp             vm1
35f367c5bcb7        nginx               "-P 8080:80 nginx"       About a minute a
##查看DNAT
[root@foundation52 docker]# iptables -t nat -nL

这里写图片描述
测试:
这里写图片描述
这里写图片描述
2.容器互联

在实际应用中往往需要多个容器交互,比如一个数据库容器来提供db服务,多个应用容器来部署应用,
使用端口访问就会暴露端口,这样不太安全。故需要容器互联。
在同一宿主机下,docker容器通过docker网桥进行连接,默认情况下,同一宿主机下的所有容器都可以连接。
但是容器的ip可能随着容器重启而变化,所以docker提供了link选项提供可靠连接。
##根据ubuntu镜像启动一个名为vm2的容器并将其连接到vm1容器上的连接起一个别名nginx
[root@foundation52 ~]# docker run -it --name vm2 --link vm1:nginx ubuntu
root@3d5192959d1a:/# cat /etc/hosts 
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2  nginx 466a27e29165 vm1
172.17.0.3  3d5192959d1a
root@3d5192959d1a:/# ping nginx
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值