Docker复习07——Docker 网络

Docker 网络

  • 为了通信
  • 为了容器互联

启动docker 查看网络

在这里插入图片描述

发现多出来一个docker0 【172.17.0.1】

常用命令

[root@tianqinglong101 test]# docker network ls   # 查看网络
NETWORK ID     NAME      DRIVER    SCOPE
38358913a9b3   bridge    bridge    local  (常用) 默认docker0
71409d332a99   host      host      local  (常用)
ab17295eb09a   none      null      local

docker network create aa_network #创建一个网络
docker network ls # 发现多了一个aa_network  默认 bridge 模式
docker network rm aa_network #删除一个网络
启动ubuntu  --name u1 --name u2
docker inspect u1 |tail -n 20 # 查看信息  ipaddress 172.17.0.2
docker inspect u2 |tail -n 20 # 查看信息  ipaddress 172.17.0.3


docker rm -f u2
启动ubuntu  --name u3
docker inspect u3 |tail -n 20 # 查看信息  ipaddress 172.17.0.3

# 结论 : docker容器内部的up地址是会变动的


bridge
  • 两两匹配
docker network inspect bridge  # 查看详细网络信息

在这里插入图片描述

案例说明

docker run -d -p 8081:8080 --name tomcat81 billygoo/tomcat8-jdk8
docker run -d -p 8082:8080 --name tomcat82 billygoo/tomcat8-jdk8

docker ps

docker exec -it tomcat81 bash
ip addr

验证

在这里插入图片描述

host

在这里插入图片描述

案例

docker run -d -p 8083:8080 --network host --name tomcat83 billygoo/tomcat8-jdk8  # 警告

docker run -d  --network host --name tomcat83 billygoo/tomcat8-jdk8  #正确 不需要端口号映射 因为和宿主机用的同一份网络

在这里插入图片描述

没有端口如何看到tomcat猫

直接 ip:8080

none
  • 很少用 做个了解即可
  • 只有一个lo 网络
docker run -d -p 8084:8084 --network none --name tomcat84 billygoo/tomcat8-jdk8
container
  • 公用同一个网桥

在这里插入图片描述

8086用8085的 运行第二句 会有个坑 端口冲突 不能用tomcat 但使用就是这么使用~

如果8085关闭了 8086的网络也没了

自定义网络

docker link 过时了~

之前

docker run -d -p 8081:8080 --name tomcat81 billygoo/tomcat8-jdk8
docker run -d -p 8082:8080 --name tomcat82 billygoo/tomcat8-jdk8

docker ps

docker exec -it tomcat81 bash
docker exec -it tomcat82 bash

# tomcat81
ip addr
172.17.0.2
# tomcat82
ip addr
172.17.0.3

# tomcat81
ping 172.17.0.3 可以
# tomcat82
ping 172.17.0.2 可以


服务名ping通呢? 不可以
# tomcat81
ping tomcat81 不可以
# tomcat82
ping tomcat81 不可以

之后

# 自定义网络使用的是 bridge

docker network create zzyy_network  # 创建一个网络

docker run -d -p 8081:8080 --network zzyy_network --name tomcat81 billygoo/tomcat8-jdk8# 新建容器加入新建的自定义网络
docker run -d -p 8082:8080 --network zzyy_network --name tomcat82 billygoo/tomcat8-jdk8# 新建容器加入新建的自定义网络

docker exec -it tomcat81 bash
docker exec -it tomcat82 bash

此时ping 服务名
ping tomcat82 # 互相能ping通  域名和ip都能ping通

参考资源链接:[Docker容器技术入门与复习精华](https://wenku.csdn.net/doc/6401ac6bcce7214c316ebc94?utm_source=wenku_answer2doc_content) 掌握Docker配置和使用独立开发环境的能力,对于保证开发环境的一致性和提高开发效率至关重要。这里,我们推荐一份实用的复习资料——《Docker容器技术入门与复习精华》。该资料详细介绍了Docker从基础概念到实际操作的各个方面,非常适合你目前的学习需求。 要使用Docker搭建独立的开发环境并进行单元测试,你需要遵循以下步骤: 1. 安装Docker并确保其运行正常。具体操作可参考《Docker容器技术入门与复习精华》中的安装与配置章节,了解不同操作系统的安装流程。 2. 创建一个Dockerfile来定义开发环境,这个Dockerfile应包含所需的基础镜像、开发工具、语言运行时、依赖管理工具等。例如,如果你使用的是Python应用,你的Dockerfile可能如下所示: ```Dockerfile FROM python:3.8-slim WORKDIR /app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . ``` 这个Dockerfile基于Python 3.8 Slim版本镜像,并在容器中安装了所有必需的依赖。 3. 构建你的开发环境镜像,并使用`docker build`命令将其构建成Docker镜像: ```bash docker build -t my-dev-env . ``` 4. 运行你的开发环境容器: ```bash docker run -it --name my-dev-container my-dev-env ``` 5. 在容器中编写代码并进行单元测试。你可以使用Dockerfile中的工作目录来存放代码,并利用安装的测试框架(如pytest、JUnit等)执行测试。 6. 使用`docker exec`命令进入正在运行的容器,执行测试命令: ```bash docker exec my-dev-container pytest ``` 或者如果你使用的是Java: ```bash docker exec my-dev-container mvn test ``` 完成这些步骤后,你将在Docker容器中拥有了一个独立的、一致的开发环境,并可以在此环境中顺利执行单元测试。通过实际操作这些步骤,你将对Docker的使用有更深刻的理解。另外,为了进一步巩固你的知识和技能,建议继续深入学习《Docker容器技术入门与复习精华》中的网络Docker Compose、实战案例等高级主题。这样你不仅能够熟练搭建开发环境,还能掌握如何利用Docker进行更复杂的应用部署和管理。 参考资源链接:[Docker容器技术入门与复习精华](https://wenku.csdn.net/doc/6401ac6bcce7214c316ebc94?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值