这是来自adventofdocker.com的内容
在第五天,你了解到Docker容器在网络方面有一些隔离。今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨Docker的网络,学习容器之间如何交流!今天,我们将更深入地探讨D克斯
端口发布回顾还记得我们在第5天提到的那个HTTP服务器吗?默认情况下,容器是相互隔离的,我们需要将端口公开,以便从主机访问它们。
$ docker run -p 8080:8080 hello-world-go
# 运行一个Docker容器,将本地8080端口映射到容器的8080端口,并运行名为hello-world-go的应用程序。
进入全屏模式。退出全屏模式。
-p
参数将容器 8080 端口映射到主机 8080 端口。例如,你可以将容器 8080 端口映射到主机 8081 端口。
运行以下命令来启动容器:$ docker run -p 3000:8080 hello-world-go
点击全屏按钮 点击退出全屏
开放所有端口
如果你的容器开放了多个端口(使用 EXPOSE
指令),你可以一次性公开所有这些端口,使用 -P
运行这个命令来启动容器:$ docker run -P hello-world-go
这将运行一个名为 'hello-world-go' 的 Docker 容器。
进入全屏,退出全屏
Docker 会自动分配随机的主机端口。你可以用 docker ps
查看这些端口的映射情况。
$ docker ps
容器 ID 镜像 端口 名称
abc123def456 hello-world-go 0.0.0.0:55000->8080/tcp cool_name
# 指 令 用 于 查 看 当 前 运 行 的 容 � instrumental wrap for zh display � instrumental wrap for zh display � instrumental wrap for zh display � instrumental wrap for zh display � instrumental wrap for zh display � instrumental wrap for zh display � instrumental � instrumental wrap for zh display 器 列 表 , 包 括 容 � instrumental wrap for zh display 器 ID 、 镜 像 名 称 、 端 口 映 射 和 容 器 名 称 。
全屏模式。退出全屏。
容器间的通信如果容器之间需要交流呢?比如,我们可以创建一个简单的网络。
$ docker network create myapp-network
# 创建一个名为myapp-network的Docker网络。 (Create a Docker network named myapp-network.)
进入全屏,退出全屏
现在在这个网络上启动两个容器。
$ docker run -d --name api --network myapp-network hello-world-go #(启动名为api的容器,并将其连接到名为myapp-network的网络,运行hello-world-go程序)
$ docker run -d --name frontend --network myapp-network nginx #(启动名为frontend的容器,并将其连接到名为myapp-network的网络,运行nginx服务器)
开启全屏, 关闭全屏
在同一网络中的容器可以使用它们的名字作为主机名来进行通信!从前端容器内部的角度来看:
$ docker exec -it frontend curl http://api:8080
你好世界!
全屏开启 全屏退出
网络种类Docker 支持多种不同的网络类型:
- bridge:默认的网络驱动。适合单机上的容器(如上文所述)
- host:移除网络隔离,容器直接使用主机网络
- none:完全禁用网络
- overlay:用于连接多台Docker主机上的容器
- macvlan:为容器分配MAC地址,使其看起来像物理网络设备
您可以在官方文档了解更多关于网络驱动的信息。
自定义主机名称虽然 Docker 默认使用容器名称作为主机名,但你可以设置自定义的主机名。
运行一个名为api的容器,使用自定义主机名custom-api,并将其连接到myapp网络,启动一个名为hello-world-go的应用程序容器。
$ docker run --name api --hostname custom-api --network myapp hello-world-go
进入全屏 退出全屏
现在,网上的容器可以用 api
或 custom-api
这两个名字来找到这个容器。
你可以在容器内部检查主机名:
$ docker exec -it api hostname
custom-api
运行此命令以检查容器内的主机名:custom-api
是返回的主机名。注:docker
和 hostname
保持英文原样,为技术术语。
全屏 退出全屏
今天的分享就到这里!明天我们会聊一聊 Docker Compose,这将让管理多个容器和网络变得简单许多。
祝你编程顺利!直到那时 🐳🎄
乔纳斯
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)