docker基于同一台宿主机的连接方式

本文详细介绍Docker环境下网络配置及容器间通信方法,包括容器准备、本地镜像确认、端口公开与绑定、容器链接及用户定义网络的创建与使用。

准备

先准备一对容器,用于连接。

客户端

$ docker run -i -t -d --name=client_setup ubuntu:18.10 /bin/bash /* 客户端 */

$ docker attach client_setup /* 连接之 */

# apt-get update /* 更新 */

# apt-get upgrade /* 升级 */

# apt-get install curl /* 在容器内安装curl */

# exit /* 退出 */

$ docker stop client_setup /* 停止 */

$ docker commit client_setup client_img /* 提交 */

服务器

$ docker run -i -t -d --name=server_setup ubuntu:18.10 /bin/bash /* 服务器 */

$ docker attach server_setup /* 连接之 */

# apt-get update /* 更新 */

# apt-get upgrade /* 升级 */

# apt-get install apache2 /* 在容器内安装apache */

# exit /* 退出 */

$ docker stop server_setup /* 停止 */

$ docker commit server_setup server_img /* 提交 */

确认

$ docker images /* 查看本地镜像,确认提交成功 */

端口公开

$ ifconfig docker0 /* 检查网桥

$ docker run -i -t -d --expose=80 --name=server1 server_img /bin/bash /* 启动服务器镜像,名为server1,公开80端口 */

$ docker attach server1 /* 连接之 */

# /etc/init.d/apache2 start /* 启动apache */

# apt-get install net-tools /* 安装net-tools */

# ifconfig /* 查看ip */

$ docker run -itd --name=client1 client_img /bin/bash /* 启动客户端镜像,名为client1 */

$ docker attach client1 /* 连接之 */

$ curl 172.17.0.2 /* 在客户端访问服务器 */

端口绑定

$ ifconfig docker0 /* 检查网桥

$ docker run -itd -p 8080:80 --name=server2 server_img /bin/bash /* 绑定到主机8080端口 */

$ docker attach server2 /* 连接之 */

# /etc/init.d/apache2 start /* 启动apache */

通过宿主系统的浏览器访问http://localhost:8080,即可访问server2中的apache2。

容器链接

$ docker run -itd --name=server3 server_img /bin/bash /* 启动服务器 */

$ docker attach server3 /* 连接之 */

# /etc/init.d/apache2 start /* 启动apache */

$ docker run -itd --link server3 --name=client3 client_img /bin/bash /* 启动客户端,链接到服务器 */

$ docker attach client3 /* 连接之 */

# curl server3 /* 通过客户端访问浏览器 */

# env | grep SERVER3 /* 检查环境变量,理解服务器和客户端的关系 */

用户定义网络

$ docker network ls /* 查看网络 */

$ docker network create backend /* 创建网络,名为backend */

$ docker network ls /* 再次查看,确认创建成功 */

$ docker run -itd --net=backend --name=server server_img /bin/bash /* 启动服务器,指定网络 */

$ docker attach server /* 连接之 */

# /etc/init.d/apache2 start /* 启动apache */

$ docker run -itd --net=backend --name=client client_img /bin/bash /* 启动客户端,指定网络 */

$ docker attach client /* 连接之 */

# curl server /* 通过客户端访问浏览器 */

多主机网络

另文探讨。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值